spring security와 OAuth 2.0으로 소셜 로그인 구현하기

Gyuhan Park·2022년 8월 28일
0

spring

목록 보기
9/18

# 구글 서비스 등록

구글 로그인을 이용하기 위해 클라이언드 ID와 보안키를 얻어야 한다. google cloud platform에 서비스를 등록하면 이를 얻을 수 있다.

  1. https://console.cloud.google.com 접속
  2. 프로젝트 선택 -> 새 프로젝트 생성
  3. 사용자 인증 정보 만들기 -> OAuth 클라이언트 ID 생성 클릭
  4. 동의화면 구성 클릭
  5. 애플리케이션 이름, 지원 이메일, Google API 범위(email, profile, openid) 선택 후 저장.
  6. OAuth 클라이언트 ID 만들기 -> 웹 애플리케이션
  7. 승인된 리디렉션 URI : http://localhost:8080/login/oauth2/code/google
    (spring security에서는 기본적으로 {도메인}/login/oauth2/code/{소셜서비스코드}로 리다이렉트 URL을 지원)
  8. 클라이언트 ID, 클라이언트 보안 비밀 생성 완료

# properties 등록

application-oauth.properties 파일 생성하여 아래의 코드를 넣어준다.

spring.security.oauth2.client.registration.google.client-id=클라이언트 ID
spring.security.oauth2.client.registration.google.client-secret=클라이언트 보안 비밀
spring.security.oauth2.client.registration.google.scope=profile, email

스프링 부트의 기본 설정 파일인 application.properties에서 이 파일을 인식하도록 다음 코드를 application.properties에 추가한다.!
spring.profiles.include=oauth

만약 github와 연동하고 있다면 .gitignore에 application-oauth.properties를 추가한다.

build.gradle에 스프링 시큐리티 관련 의존성을 하나 추가한다.
implementation 'org.springframework.boot:spring-boot-starter-oauth2-client

# spring security 설정 및 서비스 구현

  • User entity와 User repository 생성
  • spring security 설정
  • 구글 로그인 이후 가져온 사용자의 정보들을 기반으로 가입 및 세션 저장 등의 기능 구현
  • user 데이터를 세션에 저장하기 위해 직렬화 기능을 가진 DTO 생성
  • 로그인 화면 구성
profile
단단한 프론트엔드 개발자가 되고 싶은

1개의 댓글

comment-user-thumbnail
2022년 9월 1일

우와 멋지네요~

답글 달기