어떤 버그인가요?
- 운영 서버에서 소셜 로그인(구글,카카오) 시 "Invalid credentials" 에러 발생
어떤 상황에서 발생한 버그인가요?
- Given
운영 도메인에서 소셜 로그인 진행
- When
소셜로그인 로그인 페이지에서 아이디, 비밀번호 입력 후 [로그인] 클릭 시 404 "Invalid credentials" 에러 발생
- Then
로그인에 실패 하여 리다이렉트 페이지로 이동하지 않음
예상 결과
- 소셜로그인 로그인 페이지에서 아이디, 비밀번호 입력 후 [로그인] 클릭 시 리다이렉트 페이지로 이동
- 개발서버에서는 소셜로그인 정상 작동함
삽질의..흔적 (최대한 자세하게)
1. application.yaml 파일 OAuth2 설정 확인
application.yaml 파일은 dev,prod 을 분리했기 때문에 scope값, client-id, client-secret, redirect-uri 를 운영에 맞게 분리
OAuth2 설정 10번 이상 확인,복붙,제3자와 더블체크체크체크
→ 해결안됨
2. 브라우저 개발자도구에서 네트워크 통신된 부분 디버깅
- 소셜로그인 로그인 페이지에서 아이디 비번 입력
- 302 리다이렉트 요청헤더 확인
Request URL: https:/도메인/login/oauth2/code/kakao?code=~~
Status Code: 302 Found
- Response Header 의 Location이 404 에러 발생
개발서버의 경우 302 리다이렉트 이후 Response Header 의 Location 이 지정한 페이지로 되어있음
→ 해결안됨
3. 쿠키에 셋팅 설정 및 도메인과 리다이렉트url 확인
소셜로그인 성공 시 핸들러에서 헤더로 전달할 쿠키에 도메인 셋팅
// OAuth2SuccessHandler
response.setHeader(
"Set-cookie",
CookieUtils.createCookies(AUTHORIZATION,refreshToken,properties.domain(),REFRESH_TOKEN_DURATION).toString());
// ...
getRedirectStrategy().sendRedirect(request, response, redirectUrl);
properties.domain()
쿠키 셋팅 시 개발/운영모두 도메인은 board-go.net으로 설정
일단 소셜로그인 성공핸들러까지도 안들어오고, DefaultOAuth2UserService를 상속받은 서비스까지도 들어오지 않음
아예 OAuth2AuthorizationRequest 객체가 없는 것 같음!
→ 해결안됨
4. 운영서버 스케일아웃시 OAuth2 로그인 상황에 대해 로드밸런서가 동일한 서버로 요청을 분배시키지 않는 경우
NGINX 헤더 설정 트러블슈팅 이슈 참고
어떤 버그인가요?
어떤 상황에서 발생한 버그인가요?
운영 도메인에서 소셜 로그인 진행
소셜로그인 로그인 페이지에서 아이디, 비밀번호 입력 후 [로그인] 클릭 시 404 "Invalid credentials" 에러 발생
로그인에 실패 하여 리다이렉트 페이지로 이동하지 않음
예상 결과
삽질의..흔적 (최대한 자세하게)
1.
application.yaml파일 OAuth2 설정 확인application.yaml파일은 dev,prod 을 분리했기 때문에 scope값, client-id, client-secret, redirect-uri 를 운영에 맞게 분리OAuth2 설정 10번 이상 확인,복붙,제3자와 더블체크체크체크
→ 해결안됨
2. 브라우저 개발자도구에서 네트워크 통신된 부분 디버깅
Request URL: https:/도메인/login/oauth2/code/kakao?code=~~
Status Code: 302 Found
개발서버의 경우 302 리다이렉트 이후 Response Header 의 Location 이 지정한 페이지로 되어있음
→ 해결안됨
3. 쿠키에 셋팅 설정 및 도메인과 리다이렉트url 확인
소셜로그인 성공 시 핸들러에서 헤더로 전달할 쿠키에 도메인 셋팅
properties.domain()쿠키 셋팅 시 개발/운영모두 도메인은 board-go.net으로 설정
일단 소셜로그인 성공핸들러까지도 안들어오고,
DefaultOAuth2UserService를 상속받은 서비스까지도 들어오지 않음아예
OAuth2AuthorizationRequest객체가 없는 것 같음!→ 해결안됨
4. 운영서버 스케일아웃시 OAuth2 로그인 상황에 대해 로드밸런서가 동일한 서버로 요청을 분배시키지 않는 경우
NGINX 헤더 설정 트러블슈팅 이슈 참고