카카오 OAuth2 소셜 로그인 구현 중 발생한 오류를 정리하였다.
http://localhost:8080/oauth2/authorization/kakao 에 접속하여 소셜 로그인을 시도했더니 발생하는 오류였다.
레퍼런스도 많이 뒤져보고, 아래에 보이는 OAuth2LoginAuthenticationFilter.java
코드를 읽으며 디버깅도 시도했지만 도무지 원인을 알 수 없었다.
그런데 문제는...
Kakao Developers에서 Redirect URI를 http://127.0.0.1 로 설정한 것 때문이었다...
(몇 시간을 썼는지 모르겠다...)
[invalid_token_response]
An error occurred while attempting to retrieve the OAuth 2.0 Access Token Response: 401 Unauthorized: [no body]
위 오류는 인증 서버로 클라이언트를 인증할 때 사용되는 인증 방법이 카카오는 'POST' 방식이라서 발생하는 오류이다.
application.yml 파일을 사진에 보이는 것처럼
client-authentication-method: client_secret_post
client_secret_post
로 설정하면 오류가 해결된다 (Spring Security 6 이전은 post로!)
참고로 네이버는 디폴트 값인 client_secret_basic
이라고 한다.
client-authentication-method
에 관한 공식 문서의 내용이다.
1번 오류는 로드 밸런서로 서버 여러 개 띄워도 발생하더라구요 ㅠㅠ