10월 24일 화요일 TIL 회고록
OAuth2 API 테스트 하면서 나왔던 에러들 정리
1. 400 invalid_request
이 에러에서 많은 시간을 소비했다.. 구글링을 하고 해결 방법들을 따라해봐도 소용이 없었다.
이 에러가 출력하는 시점은 프론트에서 카카오 로그인을 하면 LoginFailureHandler에서 에러를 발생시켰다.
해결하려고 시도했던 방법은
1. application-oauth.yml 수정
kakao:
client-id: 클라이언트 ID
client-secret: 클라이언트 비밀번호
redirect-uri: http://localhost:8080/login/oauth2/code/kakao
client-authentication-method: POST
authorization-grant-type: authorization_code
scope: profile_nickname, profile_image
client-name: Kakao
여기서 id와 secret 비밀번호를 다시 한 번 디벨로퍼스 사이트에서 확인 후 수정해보았다. 하지만 오류가 사라지진 않았다..
Oauth 코드도 부분부분 수정해보았지만 역시 실패
2. 프론트엔드(vs code) 에서 href 값 수정
맨 처음에 카카오 OAuth2 테스트를 위해 href 값을 이렇게 적어놨었다.
<a href=https://kauth.kakao.com/oauth/authorize?client_id=클라이언트 ID&redirect_uri=http://localhost:8080/login/oauth2/code/kakao&response_type=code>
뭔가 여기서 잘못되었다는 느낌이 살짝 들어서 아래 href 값으로 수정했다.
<a href="http://localhost:8080/oauth2/authorization/kakao">
맨 처음에는 RequestParam 처럼 href에 값을 적었다면 이번에는 그냥 리다이렉트 uri 값을 넣어주었다.
이렇게 수정하고 카카오 로그인 버튼을 눌렀더니 드디어 400 invalid_request 에러가 사라졌다. 하지만..
2. 401 unauthorized: [no body]
이번에는 401 에러가 출력되었다. 해결한 방법은 구글링을 하여 해결했다!
1. 카카오 디벨로퍼스에서 Secret Key 활성화 상태 -> 비활성화 상태로 변경
내 애플리케이션 > 제품 설정 > 카카오 로그인 > 보안에서 Client Secret 활성화 상태를 사용함에서 사용안함으로 설정해주었다.
여기를 보고 해결했다.
이제 카카오 로그인을 하면 회원가입이 된다.
1번 아이디가 홈페이지에서 회원가입을 진행한 ID이고 2번 아이디가 카카오 로그인으로 회원가입을 진행한 ID이다.
1번 아이디는 소셜 아이디, 소셜 타입은 null이고 USER_ROLE은 USER 등급이다.
2번 아이디는 소셜 아이디, 소셜 타입이 숫자, 카카오로 등록되있고 USER_ROLE은 GUEST 등급이다.
근데 2번 아이디의 USERNAME은 null 이다.. 이 부분을 이제 어떻게 해야할지 고민 중이다..
내일 네이버, 구글도 테스트를 해보고 어떻게 해야할지 결정해야겠다.