728x90
5.2 구글 서비스 등록
먼저 구글 서비스에 신규 서비스를 생성한다.
여기서 발급된 인증 정보(clientId와 clientSecret)를 통해서
로그인 기능과 소셜 서비스 기능을 사용할 수 있으니
무조건 발급받고 시작해야 함
구글 클라우드 플랫폼 주소 (http://console.cloud.google.com)로 이동한다.
- 서비스에서 파라미터로 인증 정보를 주었을 때 인증이 성공하면 구글에서 리다이렉트할 URL
- 스프링 부트 2 버전의 시큐리티에서는 기본적으로 {도메인}/login/oauth2/code/{소셜서비스코드}로 리다이렉트 URL을 지원하고있다.
- 사용자가 별도로 리다이렉트 URL을 지원하는 Controller를 만들 필요가 없다. 시큐리티에서 이미 구현해 놓은 상태
- 현재는 개발 단계이므로 http://localhost:8080/login/oauth2/code/google로만 등록
- AWS 서버에 배포하게 되면 localhost 외에 추가로 주소를 추가해야하며, 이건 이후 단계에서 진행할 예정
application-oauth 등록
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
scope=profile.email
- 많은 예제에서는 이 scope를 별도로 등록하지 않고 있다.
- 기본값이 openid,profile,email이기 때문이다
- 강제로 profile, email를 등록한 이유는 openid라는 scope가 있으면 Open Id Provider로 인식하기 때문이다
- 이렇게 되면 OpenId Provider인 서비스(구글)와 그렇지 않은 서비스(네이버/카카오 등)로 나눠서 각각 OAuth2Service를 만들어야 한다.
- 하나의 OAuth2Service로 사용하기 위해 일부로 openid scope를 빼고 등록
스프링 부트에서는 properties의 이름을 application-xxx.properties로 만들면
xxx라는 이름의 profile이 생성되어 이를 통해 관리할 수 있음,
즉, profile=xxx라는 식으로 호출하면 해당 properties의 설정들을 가져올 수 있음
-> application.properties에서 application-oauth.properties를 포함하도록 구성
application.properties
spring.profiles.include=oauth
gitignore 등록
application-oauth.properties
깃허브에 연동하여 사용할 때, application-oauth.properties 파일이 올라가지 않도록
출처 : 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 [이동욱 지음]
'Back-End > Springboot와 AWS로 혼자 구현하는 웹 서비스' 카테고리의 다른 글
Chapter 05. 스프링 시큐리티와 OAuth 2.0으로 로그인 기능 구현하기 (4) (0) | 2022.03.27 |
---|---|
Chapter 05. 스프링 시큐리티와 OAuth 2.0으로 로그인 기능 구현하기 (3) (0) | 2022.03.26 |
Chapter 05. 스프링 시큐리티와 OAuth 2.0으로 로그인 기능 구현하기 (1) (0) | 2022.03.25 |
Chapter 04. 머스테치로 화면 구성하기 (5) (0) | 2022.03.19 |
Chapter 04. 머스테치로 화면 구성하기 (4) (0) | 2022.03.16 |