☁️

GoogleAPI OAuth2.0の簡単なメモ

2023/06/08に公開

はじめに

GCPのOAuth2.0の流れを細かいことは抜きに簡単にまとめました。OAuth2.0クライアントIDは作成しているものとして話を進めていきます。

認証コードの取得

以下のURLにアクセスし適当なアカウントを選択する。

https://accounts.google.com/o/oauth2/v2/auth?scope=[スコープ]&
response_type=code&redirect_uri=[リダイレクトuri]&
client_id=[クライアントID]&access_type=offline

アカウント選択後画面が遷移するのでURLのcode=xxxxxxxxx部分を確認する(認証コード)。

アクセストークンとリフレッシュトークンの取得

先ほど取得したauthcodeを用いてアクセストークンとリフレッシュトークンの取得を行う。

curl -XPOST https://www.googleapis.com/oauth2/v4/token --data \
"code=[認証コード]&redirect_uri=[リダイレクトURL]&\
client_id=[クライアントID]&client_secret=[クライアントシークレット]&\
scope=&grant_type=authorization_code"


{
  "access_token": [アクセストークン],
  "expires_in": 3600,
  "refresh_token": [リフレッシュトークン],
  "scope": [スコープ],
  "token_type": "Bearer"
}

https://myaccount.google.com/u/0/permissions
にアクセスし連携を解除すると初期状態に戻せる。

アクセストークンのリフレッシュ

リフレッシュトークンを用いて、アクセストークンのリフレッシュを行う。

curl -XPOST https://www.googleapis.com/oauth2/v4/token --data \
"client_secret=[クライアントシークレット]&\
grant_type=refresh_token&\
refresh_token=[リフレッシュトークン]&\
client_id=[クライアントID]"

{
  "access_token":[アクセストークン],
  "expires_in": 3599,
  "scope": [スコープ],
  "token_type": "Bearer"
}

参考

https://developers.google.com/identity/protocols/oauth2/native-app?hl=ja#handlingresponse
https://qiita.com/hanzawak/items/7355142f884cb56a4d57
https://stackoverflow.com/questions/10827920/not-receiving-google-oauth-refresh-token

フィシルコム

Discussion