5.2 구글 서비스 등록


구글 클라우드 플랫폼 

 

Google Cloud Platform

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

accounts.google.com

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 제대로 실행이 되지 않는다면 아래 링크로 한번 들어가보세요

 

.gitignore가 작동하지 않을때 대처법

.gitignore가 제대로 작동되지 않아서 ignore처리된 파일이 자꾸 changes에 나올때가 있습니다. git의 캐시가 문제가 되는거라 아래 명령어로 캐시 내용을 전부 삭제후 다시 add All해서 커밋하시면 됩니

jojoldu.tistory.com

 

복사했습니다!