토막상식 / / 2022. 6. 6. 03:03

답답해서 정리해보는 Google OAuth2 연동방법

Google OAuth2 작동방식

1. 사용자는 웹애플리케이션(이하 앱)에서 구글을 통한 회원가입/로그인 시도를 한다. 앱에서 제공하는 `구글로 로그인하기`를 누른게 된다.

2. 앱에서는 Google Cloud Platform(이하 GCP)에서 미리 설정해놓은 client_id, redirect_uri 와 함께 로그인 페이지로 리다이렉트한다.

https://accounts.google.com/o/oauth2/v2/auth
?client_id=GCP에서 설정한 client_id
&redirect_uri=GCP에서 설정한 redirect_uri
&response_type=code
&scope=GCP에서 설정한 스코프 범위
&approval_prompt=force
&access_type=offline

3. 사용자가 정상적으로 로그인을 완료하면 code 값과 함께 2번에서 설정했던 redirect_uri로 리다이렉트 한다.

4. 가지고 있는 client_id, client_secret, code와 함께 토큰발급을 요청한다.

주소 POST/ https://oauth2.googleapis.com/token
client_id GCP에서 발급받은 client_id
client_secret GCP에서 발급받은 client_secret
code 3번에서 받은 code
grant_type authorization_code 고정
redirect_uri GCP에서 설정한 redirect_uri

5. 정상적으로 처리됐다면 토큰과 관련정보들을 응답한다.

access_token 앞으로 사용해야 할 액세스 토큰값
expires_in 액세스 토큰의 만료기한 초
refresh_token 새 액세스 토큰을 얻을 수 있는 토큰값
scope 데이터에 접근할 수 있는 스코프(범위)
token_type Bearer 고정

유저정보에 액세스가 가능한 토큰을 가지고 있는 앱은 사용자의 정보를 읽기위해 구글API서버에 토큰과 함께 호출을 한다.

6. 토큰을 발급받았다면 사용자가 허락한 스코프(범위) 내에서 정보를 가져올 수 있다. 이 글에서는 간단하게 사용자 정보를 출력하는 Google API에 정보를 요청해보겠다.

주소 GET/ https://www.googleapis.com/oauth2/v2/userinfo
access_token 발급받은 액세스 토큰

 

7. 액세스 토큰과 스코프 문제가 없다면 정상적인 값이 출력된다.

응답 값

 

세부적인 정보, 값은 천천히 수정할 예정이다.

  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유