Google GIS(Google Identity Services) 방식이란?

2024. 1. 30. 09:18프로그래밍/웹 개발

사내에서 소셜 로그인을 구현하게 됐다. 그 중에서도 구글을 맡게 됐다(페이스 북 로그인은 비즈니스 계정이 인증된 후에 추가적으로 email을 api로 요청해야 하는데 비즈니스 계정 인증이 안되는 관계로 우선은 보류됐다). 

 

1. google cloud 콘솔에서 계정 생성 

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

새 프로젝트 생성

 

2. people api 등록(이거 아니라도 Google Login API를 사용할 수 있는 다른 API라도 추가하면 됨)

 

3. oauth 동의화면에서 클라이언트 등록(ID, PW 발급) ->이때 발급받은 Client ID로 Google에 API를 호출한다.

Redirect URI 등 추가

 

4. docs 참고하면서 Javascript 코드 추가 

 

google에서 굉장히 친절하게 docs를 제공하고 있기 때문에 아래 링크를 참고하면서 맞춰서 진행하면 된다.

https://developers.google.com/identity/protocols/oauth2/web-server?hl=ko

 

웹 서버 애플리케이션용 OAuth 2.0 사용  |  Authorization  |  Google for Developers

이 페이지는 Cloud Translation API를 통해 번역되었습니다. Switch to English 의견 보내기 웹 서버 애플리케이션용 OAuth 2.0 사용 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분

developers.google.com

단 여기서 주의해야 할 사항은 GIS방식과 Oauth로 인증하는 방식을 헷갈리면 안된다는 것이다.(아래 링크 참조)

https://developers.google.com/identity/gsi/web/guides/overview?hl=ko

 

개요  |  Authentication  |  Google for Developers

Chrome 서드 파티 쿠키 지원 중단이 2024년 1분기에 시작됩니다. 이전 가이드에 따라 잠재적인 변경사항을 검토하고 사용자가 웹사이트에 로그인할 때 부정적인 영향을 받지 않도록 하세요. 이 페

developers.google.com

 

두 번째 방식(GIS)은 나와있듯이 Google Identity Services이다. Oauth보다 더 간편하고 보안이 좋은 방법으로 소셜 로그인한 유저의 계정 정보를 불러올 수 있다.

id token은 jwt token으로 디코딩 하게되면 페이로드에 email과 해당 플랫폼에서의 유저의 고유 id를 반환한다.

 

oauth와 다른 점은 필자가 생각했을 때 다음과 같다.

 

1. 인증 방식이 다르기 때문에 보안성이 좋다.

2. Access Token을 가져오지 않는다.

 

즉 Access token으로 Google AP를 호출하기 위해서는 Oauth방식을 통해 access token을 발급받아야 하고 단순히 사용자의 간단한 정보만 필요하다면 GIS 방식으로 훨씬 쉽게 구현할 수 있다. 

필자도 현재 필요한 정보는 모두 GIS에 담겨 있었지만 추후 확장성을 위해 access token을 발급받는 방식으로 구현했다.