멋사 Backend 56일차 🦁

신재원·2023년 7월 11일

📗 Spring

소셜 로그인 이란 ?

  • 네이버 / 카카오 / 구글에 연동하여 로그인 하는 행위를 말합니다.

스프링 시큐리티 + Oauth2.0을 통해 소셜 로그인을 구현할수 있습니다.

➡ Oauth2.0 이란 ?

  • “로그인을 대신(대체) 해주는 기술이 아닌”, 사용자가 어떤 소셜 로그인을 진행하고 싶을때 해당 서비스에 직접 인증 정보를 주지 않아도 나의 정보를 조회할수 있도록 권한을 위임하는 기술 입니다.

Flow 흐름

오늘 프로젝트 예시로는 네이버 소셜 로그인으로 예시를 들어 진행합니다.

(접근 토큰을 통해 해당 소셜 로그인의 사용정보를 조회합니다.)

먼저 Oauth2.0을 사용하기 위해서는 아래의 의존성을 추가해줘야 합니다.

  • 'implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'
  • 'implementation 'org.springframework.boot:spring-boot-starter-security'

네이버를 통해 소셜로그인을 진행하기 때문에
1. 해당 URL에 접속하여 애플리케이션을 등록합니다.

  1. 서비스 URL은 추후에 배포 URL 주소 이며, 고정 URL은 특별한 경우가 아니면 바뀌지 않는다고 합니다.

  1. 애플리케이션을 등록후 yml 혹은 properties 설정 파일을 작성해줘야 합니다.
  • Spring : 구문에 들여쓰기하여 security : 구문으로 시작합니다.
    • 네모친 부분은 해당 소셜 로그인의 공식문서에서 설정 URL를 찾아서 작성해야 합니다.
  • provider : 서비스 제공자에 대한 정보를 기재
  • registration : 서비스 제공자를 사용하기 위한 정보를 기재
    ( 클라이언트 식별 )

client - id, client - secret 은 로컬에 해당하는 값을 적어줘야 합니다.

OAuth2UserServiceImpl 클래스 구현

  • oAuth2.0 에서 제공되는 구현체 중 DefaultOAuth2UserService 를 상속받아 메소드를 재 정의 해줍니다.

DefaultOAuth2UserService 란?

OAuth 2.0 프로토콜을 사용하여 사용자 인증 및 권한 부여를 처리를 해줍니다.
( access 토큰을 통해 사용자 정보를 가져오게 됩니다.)

reference

https://velog.io/@rnqhstlr2297/Spring-Security-OAuth2-%EC%86%8C%EC%85%9C%EB%A1%9C%EA%B7%B8%EC%9D%B8#3-oauth2-client-library%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-soical-login

0개의 댓글