Google Oauth2를 사용할 예정이므로, 구글 서비스를 먼저 등록하겠습니다. 순서대로 진행하시면 됩니다. 밑에 URL에 들어갑니다.

https://console.cloud.google.com/

 

Google Cloud Platform

하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요.

accounts.google.com

1. Google Console 등록하기

  • 새 프로젝트를 만들어줍니다. 

  • 프로젝트 이름을 설정해줍니다.

  • Ξ -> API 및 서비스 -> 사용자 인증 정보를 눌러줍니다.

  • 사용자 인증 정보 만들기 -> Oauth 클라이언트 ID

 

 

  • 동의 화면 구성을 눌러줍니다. 이때 동의 화면은 google 로그인할 때 나오는 약관 동의 화면입니다.

  • 해당 부분만 채우고 저장 후 계속을 눌러줍니다.

  • 범위 추가 또는 삭제 -> 위의 3개를 선택해줍니다. 그 후 저장 후 계속을 눌러 마무리합니다. 

  • 아까의 사용자 인증 정보 만들기 -> Oauth2 클라이언트 ID를 누르고 아래와 같이 작성해줍니다. 

  • 승인된 리디렉션 URI

     1. 서비스에서 파라미터로 인증 정보를 주었을 때 인증이 성공한다면 리다이렉트 할 URL입니다. 

     2. 스프링 부트 2.xx 버전에서는 시큐리티에서 기본적으로 {도메인}/login/oauth2/code/{소셜 서비스 코드}를 지원해줍니다.

     3. 시큐리티가 이미 구현을 해놓았기 때문에 해당 URL을 담당하는 Controller제작은 안 해도 됩니다.

  • 만들어진 것을 클릭하여 클라이언트 ID와 보안 비밀을 확인해줍니다. 해당 부분은 보안상의 문제로 외부로 유출해서는 안됩니다.


2. application.yml, application-oauth2.yml 작성

  • 가장 먼저 .gitignore에 application-oauth2.yml을 추가해줍니다. (보안상의 이슈로 Github에 올리지 않습니다.)

  • application.yml 작성 (DB는 H2를 디펜던시로 받았기 때문에 내장 메모리 H2 DB로 돌아갈 예정입니다.)
spring:
  profiles:
    include: oauth
    
  datasource:
    url:
    username: sa
    password:
    driver-class-name: org.h2.Driver

  jpa:
    hibernate:
      ddl-auto: create
  • application-oauth.yml
spring:
  security:
    oauth2:
      client:
        registration:
          google:
            client-id: google 사용자 정보에서 만들었던 client-id 작성
            client-secret: client-secret 작성
            scope: profile, email

 

여기까지 전반적인 설정은 모두 끝이 났습니다. 다음은 Entitny와 Service를 만들어보겠습니다. 감사합니다.

 

모든 코드는 아래 링크에서 확인 가능합니다. 

https://github.com/rlaehdals/Oauth2Example

 

GitHub - rlaehdals/Oauth2Example

Contribute to rlaehdals/Oauth2Example development by creating an account on GitHub.

github.com