[스프링부트와 AWS로 혼자 구현하는 웹 서비스] 구글 서비스 등록 및 설정

세이라·2023년 7월 27일
0

스터디를 통해 스프링부트와 AWS로 혼자 구현하는 웹 서비스(저자 이동욱) 서적을 공부하는 중입니다.

공부/실습한 내용을 정리한 포스팅입니다.
책에 모르는 부분이 있으면 구글링하거나 챗gpt에 물어봐서 보충하였습니다.
(아직 초보라 모르는 부분이 많아 이것저것 다 적었습니다.)

참고한 사이트 출처는 포스팅 맨 하단에 적었습니다.

구글 서비스에 신규 서비스 생성

  • 신규 서비스를 생성함으로써 얻는 clientIdclientSecret를 통해서 로그인 기능과 소셜 서비스 기능을 사용할 수 있음.

과정

  1. Google Cloud Flatform 접속
  2. '프로젝트 선택' 버튼 클릭 후 '새 프로젝트 선택' 버튼 클릭
  3. 프로젝트 이름의 경우, 원하는 이름으로 작성
  4. API 및 서비스>사용자인증정보 클릭
  5. 프로젝트 선택 후 '사용자 인증 정보 만들기' 버튼 클릭. 'OAuth 클라이언트 ID' 클릭.
  6. 클라이언트 ID가 생성되기 전에 동의 화면 구성이 필요하므로 안내에 따라 '동의 화면 구성' 버튼 클릭.
  7. OAuth 동의 화면 구성 중 User Type에서 외부 클릭. 그 외엔 알아서 필수 요소 설정하기.
  8. 동의 화면 구성 다 끝나면 다시 '사용자 인증 정보 만들기' 클릭 후 'OAuth 클라이언트 ID' 클릭.
  9. 애플리케이션 유형을 '웹 애플리케이션'으로 선택.
  10. Google API의 범위를 email,profile,openid로 설정.
  11. 승인된 리디렉션 URI를 http://localhost:8080/login/oauth2/code/google로 설정. 나머지는 알아서 다 설정.

※ Google API의 범위 : 구글 서비스에서 사용할 범위 목록.
※ 승인된 리디렉션 URI : 서비스에서 파라미터로 인증 정보를 주었을 때 인증이 성공하면 구글에서 리다이렉션할 URL.
SpringBoot2 Security에선 {도메인}/login/oauth2/code/{소셜서비스코드}로 리디렉션 URL 지원.
사용자가 별도로 리다이렉트 URL 지원하는 Controller 만들 필요X. Security에서 이미 구현해놓음.


Client ID, Client Secret 프로젝트 설정

application-oauth.properties

  1. src>main>resources에 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
  1. application.properties에 다음 코드 추가
spring.profiles.include=oauth

profile

  • Spring의 각 Component들의 설정에 필요한 변수값들을 모아놓은 파일. 기본적으로 SpringBoot에서는 application.properties라는 기본 profile 제공.
  • 개발, 운영환경의 설정파일을 따로 관리하여 배포할 때 환경에 맞는 설정 파일들을 적용할 수 있음.
  • SpringBoot에서 properties의 이름을 application-xxx.properties로 만들면 xxx라는 이름의 profile 생성되어 이를 통해 관리할 수 있음.
    즉, profile=xxx라는 식으로 호출하면 해당 properties의 설정들을 가져올 수 있음.
  • 호출하는 방식은 여러 방식이 있음. 여기선 application.properties에서 application-oauth.properties를 포함하도록 구성.

.gitignore 등록

  • Google 로그인을 위한 Client ID와 Client Secret는 보안이 중요한 정보들이기 때문에, GitHub에 application-auth.properties 파일을 올리면 X
  • .gitignore에 아래의 코드 추가

출처

[Spring boot] 상황에 맞는 Profile 적용하기
Spring profile 설정

0개의 댓글