[Springboot] Google 서비스 등록

Google api를 사용하기 위한 서비스 등록

https://console.cloud.google.com/

여기로 들어간다.

20220705_221442

들어가면 위와 같은 화면이 있다. 저 API는 이전에 이미 만들어 둔 API

20220705_221704

원래라면 맨 처음에는 API 및 서비스로 생성해야한다. 사용자 인증정보로 가서 OAuth 클라이언트 생성

20220705_221735

20220705_221830

그럼 위와 같은 화면이 나오게 되며 사용자 인증 정보를 만들수 있게 된다.


20220705_221907

이어지는 화면에서 애플리케이션 이름, Google API의 범위를 설정한다

범위는 email, profile, openid로 설정한다

  • 애플리케이션 이름 : 구글 로그인 시 사용자에게 노출된 애플리케이션 이름

  • 지원 이메일 : 사용자의 동의화면에서 노출될 이메일 주소.

  • Google API의 범위 : 등록할 구글 서비스에서 사용할 범위 목록. 기본값은 email/profile/openid이며, 여기서는 딱 기본범위만 사용. 이외의 다른 정보로 사용하고 싶으면 범위 추가버튼으로 추가.


20220705_223801

아래에 승인된 리디렉션 URI가 있다.

  • 서비스에서 파라미터로 인증정보 줄 시 인증 성공하면 구글에서 리다이렉트할 URI는

  • 스프링 부트 2 버전의 시큐리티에선 기본적으로 {도메인}/login/oauth2/code/{소셜 서비스코드}로 리다이렉트 URL 지원

  • 사용자가 별도로 리다이렉트 URL을 지원하는 Controller를 만들 필요가 없음. 시큐리티에서 이미 구현해둔 상태

  • 현재는 개발단계이므로 http://localhost:8080/login/oauth2/code/google 로만 등록

-AWS서버에 배포하게 되면 localhost외에 추가로 주소를 추가해야 한다.

20220705_224241

생성하면 클라이언트 정보를 볼수 있게 된다.

저 클라이언트 ID와 PW를 사용하게 된다.


application-oauth등록

당연하게도! 위의 id와 pw는 깃에 올라가선 안된다.

20220705_225419

그래서 .gitignore을 이용해서 깃에 올라가는 것을 막아야 하고 application-aouth를 등록해준다.

spring.security.oauth2.client.registration.google.client-id=
spring.security.oauth2.client.registration.google.client-secret=
spring.security.oauth2.client.registration.google.scope=profile,email

위에서 spring.security.oauth2.client.registration.google.scope=profile,email

db부분은

  • 많은 예제에선 scope 별도 등록하지 않는데 기본값이 openid, email, profile이기 떄문

  • 강제로 profile을 등록한 이유는 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 등록

구글 로그인을 위한 id, pw는 외부 노출되면 개인정보가 털리므로 이걸 깃에 안 올리기 위해 설정해야한다.

application-oauth.properties

를 .gitignore에 추가한다.

위 설정 후 커밋시 커밋 목록에 application-oauth





© 2021.03. by yacho

Powered by github