woowacourse-teams / 2023-festa-go

🎪 페스타고, 대학 축제를 더욱 즐겁게!
71 stars 8 forks source link

[BE] 카카오 OAuth2 로그인 시 Userinfo를 OpenID 토큰을 통해 받도록 개선한다. #994

Closed seokjin8678 closed 5 months ago

seokjin8678 commented 5 months ago

✨ 세부 내용

카카오 OAuth2 로그인 시 다음과 같은 절차를 따릅니다.

  1. 사용자가 요청한 Authorization CodeKakaoOAuth2AccessTokenClient를 통해 API 요청을 보내서 Access Token을 가져온다.
  2. Access TokenKakaoOAuth2UserInfoClient를 통해 API 요청을 보내서 UserInfo를 가져온다.
  3. UserInfo에 담긴 사용자 정보로 로그인/회원가입 처리를 한다.

위 절차는 정상적인 OAuth2 Authorization Code Grant 유형의 인증 방식이지만, 엑세스 토큰으로 사용자를 식별하기 위해(인증) API 요청을 추가로 날려야 한다는 단점이 있습니다.

하지만 1번 단계에서 엑세스 토큰 대신 ID Token을 가져오고, 2번 단계에서 OpenID Connect 구현체인 KakaoOpenIdClient를 통해 UserInfo를 가져오면 API 요청 한 번으로 인증/인가를 처리할 수 있습니다.

⏰ 예상 소요 시간

30분