STUDY/Spring

Spring Boot | OAuth2 Google 로그인

개미606 2021. 6. 9. 11:42

스프링 부트와 AWS로 혼자 구현하는 웹 서비스 책을 참고하여 작성하였습니다.

  • java11
  • Gradle 7.0.2
  • Spring Boot 2.5.0

build.gradle

spring-boot-starter-oauth2-client를 사용한다.

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

구글에 프로젝트 등록

https://console.cloud.google.com/ 로 접속 후, 새 프로젝트를 생성한다.

(이미 프로젝트 생성한 상태라 저렇게 되어있음.. 저 부분 클릭하면 모달창이 생성된다)

 

 

프로젝트 이름은 자유롭게 설정

 

 

API 및 서비스 > 사용자 인증 정보

(OAuth 동의 화면 부터 만들라고 할 것임..)

 

 

앱 이름은 동의 화면에 나타나는 이름임!

사용자 지원 이메일은 일단 테스트니까 대충 적고, 실제로는 help나 cs 이메일을 적는다.

개발자 연락처 정보를 적고 나머지는 비워둬도 괜찮음, 저장 후 계속

범위를 설정한다. 로그인 시 받을 정보의 범위를 설정하는 부분

email, profile, openid를 받도록 설정했다. 그리고 저장 후 계속

 

 

테스트 사용자를 등록한다. 앱이 승인되기 전까지는 이곳에서 등록한 사용자만 로그인이 가능하다.

저장 후 계속을 누르면 요약정보가 뜨게 된다! OAuth 동의 화면 설정 끝

 

 

이제 진짜 사용자 인증 정보를 발급받는다(clientId, clientSecret)

사용자 인증 정보 만들기 클릭

 

 

이름과 URI를 입력 후 저장한다.

승인된 리디렉션 URI는 로그인 성공 후 정보가 해당 URI로 도착하게 되는데,

이 endpoint는 spring-boot-starter-oauth2-client 라이브러리가 자동으로 생성해주고 처리해준다. (저대로 입력하란소리)

저장을 누르면 아마 clientId와 clientSecret이 발급될거다. 발급된 clientId와 clientSecret만 잘 등록하면 끝!

application-oauth.yml 파일 만들기

방금 발급받은 클라이언트 키를 등록해줘야 한다. 우선 application-oauth.yml파일을 생성한 뒤 아래와 같은 형식으로 적어준다.

spring:
  security:
    oauth2:
      client:
        registration:
          google:
            clientId: google-client-id
            clientSecret: google-client-secret
            scope: profile,email

profile 설정

applcation-{profile}.yml형태로 파일을 생성하게 되면, 자동으로 profile이 하나 생성된다고 보면 된다.
application-oauth.yml파일을 생성했으니, oauth라는 프로필이 만들어진 것.
이제 이 프로필을 사용하겠다는 설정을 추가해준다.
application.yml에 프로필을 등록하는데, group을 이용해 등록해준다!

스프링 부트 2.4버전부터 프로필을 설정하는 방법이 달라졌다. include는 더이상 사용하지 않고, group으로 설정한다.

spring:
  profiles:
    group:
      local:
        - oauth

이제 프로젝트 실행 시 local이라는 프로필로 실행하면 oauth프로필도 함께 포함되어 실행되게 된다.

 


이 다음부터는... 책의 내용대로 그대로~하면된다.. 귀찮은 거 아님...^^.. 책사세요... 추천...
https://jojoldu.tistory.com/168