Social Login - 코드 구현

img.png




SecurityConfig

  • Google 이나 Keycloak 같은 경우는 OpenID를 지원하기 때문에 /api/oidc로는 접근이 가능하다.

  • Naver 같은 경우 OpenID를 지원하지 않아 접근하지 못한다.

CustomAuthorityMapper

  • SecurityConfig에서 정의한 hasAnyRole에 맞게 ROLE_ prefix를 붙여준다.

네이버의 경우 attributesresponse로 한번 감싸져 있기에 response를 한 번 벗겨내고 권한 매핑을 한다.

img_2.png

구글의 경우 email 같이 바로 오지 않고 https://.../.../.email과 같은 형태로 정보가 넘어오기 때문에 정확한 스코프 정보만 추출하기 위한 코드가 필요하다.

img_1.png


application.yml

  • 구글의 경우 provider는 이미 스프링에 정의되어 있다.(참고arrow-up-right)

  • client_idclient_secret은 각각 애플리케이션 등록 화면에서 알 수 있다.

  • redirect_uri는 반드시 애플리케이션 등록할 때 uri와 같아야 한다.

  • 네이버는 OpenID를 지원하지 않는다.

  • 네이버의 provideruri 정보는 네이버 로그인 개발가이드arrow-up-right에서 확인할 수 있다.


이전 ↩️ - OAuth 2.0 Client(Social Login) - 구글, 네이버 애플리케이션 등록arrow-up-right

메인 ⏫arrow-up-right

다음 ↪️ - OAuth 2.0 Client(Social Login) - 소셜 인증 내부 프로세스arrow-up-right

Last updated