Kotlin + Spring Boot - OAuth2.0

NuJey·2025년 4월 18일

Kotlin + Spring Boot 환경에서 Google OAuth2.0 로그인 기능을 구현하는 방법을 단계별로 정리해보겠습니다.

✅ 목표

  • 로그인 후 사용자 정보를 받아와 DB에 저장
  • 인증된 사용자는 세션/토큰 등을 통해 인증 처리

📦 1. 의존성 추가

🔐 2. application.yml 설정

profiles를 이용하여 application-oauth.yml 파일 분리

🛠️ 3. SecurityConfig 구성

.oauth2Login { ... }

  • Spring Security가 제공하는 OAuth2 로그인 기능을 활성화하는 블록
    이 블록 안에서 로그인 처리, 인증 후 리디렉션, 사용자 정보 조회 등을 커스터마이징할 수 있어

.userInfoEndpoint { ... }

  • OAuth2 로그인 후, access token을 사용해서 사용자 정보를 가져오는 엔드포인트 설정
  • 기본적으로는 Google, Kakao, Naver 같은 OAuth provider의 userinfo endpoint를 호출해

.userService(customOAuth2UserService)

  • 기본 OAuth2UserService 대신, 내가 만든 커스텀 OAuth2UserService를 사용하겠다는 설정
  • customOAuth2UserService는 사용자의 이메일, 이름, 프로필 사진 등을 받아서, 사용자 DB 조회, 신규 사용자 저장, 기존 사용자 정보 업데이트 등을 처리하는 역할을 해

👤 4. OAuth2UserService 구현

🔄 5. 로그인 흐름 요약

  • 사용자가 각 oauth 인증 페이지로 이동
  • OAuth 인증 → 리다이렉트
  • CustomOAuth2UserService에서 사용자 정보 확인 및 저장
  • 인증된 사용자만 접근 가능한 API 사용 가능

0개의 댓글