localhost 환경에서는 loadUser()와 successHandler()가 잘 호출됩니다만 …
배포만 하면 loadUser()와 successHandler()가 호출 되지 않습니다.
http
.oauth2Login((oauth2) -> oauth2
.userInfoEndpoint((userInfoEndpointConfig) -> userInfoEndpointConfig
.userService(customOAuth2UserService))
.authorizationEndpoint(redirection -> redirection
.baseUri("/api/oauth2/"))
.successHandler(customSuccessHandler)
.redirectionEndpoint(redirectionEndpointConfig -> redirectionEndpointConfig
.baseUri("/"))
);
와 같이 SecurityConfig를 설정해놓은 상태입니다.
안녕하세요.
확인을 위해 앱 ID 부탁드립니다.
앱ID
https://developers.kakao.com/ 의 내 애플리케이션>앱 설정>요약 정보 : 기본정보에 있는 앱 ID
숫자로된 ID 입니다
ex) 123456
카카오 로그인 이후, 브라우저 주소창에는 어떻게 표시되고 있을까요?
https://k10c102.p.ssafy.io/?code=0HRy_3KVc_i9IRe0yf9rbc97YgNaCztZhTLyoDgiVoMQWs3dko2xH8ompIIKPXUZAAABj1YC_Kmm1x-HnlkNwQ&state=Nh_LiKoZcBytMjyOSfl6kMr46EqcqtCEjgD3t3n8SGw%3D
로 되고 있습니다.
위의 답변해주신 내용과 같이 해당 엔드포인트를 서비스가 처리하지 못하는 것으로 보입니다.
spring의 redirect_uri 설정이 올바른지, 방화벽에 의해 접근 불가한건 아닌지 확인 부탁드립니다.
localhost 환경에서는 DefaultOAuth2UserService loadUser()와 SimpleUrlAuthenticationSuccessHandler의 onAuthenticationSuccess() 까지 잘 호출 하는데 배포만 하면 호출되지 않습니다… redirect_uri의 문제일까요?
-
application.yml, 카카오 디벨로퍼의 redirect_uri (https://k10c102.p.ssafy.io)는 같은 것을 확인했고 Security Config 파일에서도
http
.oauth2Login((oauth2) -> oauth2
.userInfoEndpoint((userInfoEndpointConfig) -> userInfoEndpointConfig
.userService(customOAuth2UserService))
.authorizationEndpoint(redirection -> redirection
.baseUri("/api/oauth2/ddib"))
.successHandler(customSuccessHandler)
.redirectionEndpoint(redirectionEndpointConfig -> redirectionEndpointConfig
.baseUri("/"))
);
로 redirectionEndpoint를 제대로 설정해준 것을 확인한 바입니다 .
redirect_uri 말고 다른 엔드포인트에 접근 가능한지 확인 부탁드립니다.
배포된 서비스가 localhost 도메인 으로만 접근 가능한 상태인것 같습니다.
//경로별 인가 작업
http
.authorizeHttpRequests((auth) -> auth
.requestMatchers("/**").permitAll()
.anyRequest().permitAll());
로 모든 도메인에 대해 security Config를 열어놓은 상태입니다 ㅠㅠ
redirect_uri 말고 다른 url에 접근 가능한가요?
baseUri를 지정하지 않고 기본 제공되는 주소로 사용해보시겠어요?
http
.oauth2Login((oauth2) -> oauth2
.userInfoEndpoint((userInfoEndpointConfig) -> userInfoEndpointConfig
.userService(customOAuth2UserService))
.successHandler(customSuccessHandler)
.redirectionEndpoint(redirectionEndpointConfig -> redirectionEndpointConfig
.baseUri("/"))
);
Security Config에서 위 코드와 같이 말씀하시는 걸까요?
해당 코드가 불필요해 보이는데요 제거하고 시도해 보시겠어요?
http
.oauth2Login((oauth2) -> oauth2
.userInfoEndpoint((userInfoEndpointConfig) -> userInfoEndpointConfig
.userService(customOAuth2UserService))
.successHandler(customSuccessHandler)
);
로 시도해도 똑같이 customSuccessHandler가 홏출되지 않습니다.
redirect_uri가 변경되지 않는 것으로 보아 변경사항이 배포 안된것으로 보입니다.
우선 /
사용하지 마시고 spring에서 기본 제공되는 방식의 엔드포인트를 사용 부탁드립니다.