Published 2022. 4. 29. 16:24
5.2 구글 서비스 등록
구글 클라우드 플랫폼
1. 상단 오른쪽 새프로젝트(나는 이미 만들었기에 firstProject) 클릭
2. 팝업에 오른쪽 상단 새프로젝트 클릭 후 프로젝트 하나 생성
3. 메뉴 > api 및 서비스 > 사용자 인증 정보
4. +사용자 인증 정보 만들기 > OAuth 클라이언트 ID 클릭
5. 웹 애플리케이션 선택 , 승인된 리디렉션 URL 따라 쓰기
6. 사용자 인증 정보 자신이 만든 클라이언트 선택
7. 오른쪽 클라이언트ID, 클라이언트 보안비밀를 프로젝트에 설정을 해줄것이다.
** 승인된 리디렉션 URL **
* 서비스에서 파라미터로 인증 정보를 주었을 때 인증이 성공하면 구글에서 리다이렉트할 URL입니다.
* 스프링 부트2 버전의 시큐리티에서는 기본적으로 {도메인}/login/oauth2/code/{소셜서비스코드}로
리다이렉트 URL를 지원하고 있습니다.
* 사용자가 별도로 리다이렉트 URL을 지원하는 controller를 만들 필요가 없습니다. 시큐리티에서 이미
구현해 놓은 상태입니다.
* 서버에 배포하게되면 localhost 외에 추가로 주소를 추가해야합니다.
8. 4장에서 만들었던 application.properties가 있는 디렉토리에 appliction-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
* 많은 예제에서는 이 scope를 별도로 등록하지 않고 있습니다.
* 기본값이 openid,profile,email이기 때문입니다.
* 강제로 profile,email를 등록한 이유는 openId라는 scope가 있으면 Open Id Provider로
인식하기 때문입니다.
* 이렇게 되면 OpendId Provider인 서비스(구글)와 그렇지 않은 서비스(네이버/카카오)로
나눠서 각각 Oauth2Service를 만들어야합니다.
* 하나의 Oauth2Servicefh 사용하기 위해 일부러 openid scope를 빼고 등록합니다.
스프링 부트에서는 properties의 이름을 application-xxx.properties 로 생성하면 xxx라는 이름으로 관리할 수 있습니다.
appliction.properties에 다음 코드를 추가해주세요
spring.profiles.include=oauth
9. gitignore 등록
구글 로그인을 위한 클라이언트 ID와 클라이언트 보안 비밀은 보안이 중요한 정보들입니다. 노출이 되지않게 .gitignore에 다음 코드를 추가해주세요
application.oauth.properties
만약 .gitignore 제대로 실행이 되지 않는다면 아래 링크로 한번 들어가보세요
'무조건 따라하기 > Spring Boot 기반 Web Service' 카테고리의 다른 글
스프링부트와 AWS로 혼자 구현하는 웹 서비스 - 05장 (3) 구글로그인 - 구글로그인 연동하기 (0) | 2022.04.29 |
---|---|
스프링부트와 AWS로 혼자 구현하는 웹 서비스 - 05장 (1) 스프링부트 1.5 vs 스프링부트 2.0 (0) | 2022.04.29 |
스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - 4장 (2) (0) | 2022.04.21 |
스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - 4장 (1) (0) | 2022.04.21 |
스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - 3장 (2) (0) | 2022.04.20 |