🔨
OAuth2.0のGoogleログインで取得したアクセストークンを検証する
はじめに
OAuth 2.0のGoogleログインで取得したアクセストークンを有効なものか、バックエンドのアプリケーションなどで検証したいときの手順を書きます。
やり方
Googleトークンの情報取得APIにアクセスする
https://oauth2.googleapis.com/tokeninfo?access_token=YOUR_ACCESS_TOKEN
にGETでアクセスする(GETなのでブラウザーでも確認可能)
レスポンスを確認する
アクセストークンの有効期限(1時間)が切れていると次のようなエラー(400 Bad Request
)がレスポンスとして返ってきます。
{
"error_description": "Invalid Value"
}
アクセストークンが不正の場合は、次のようなエラー(400 Bad Request
)がレスポンスとして返ってきます。
{
"error": "invalid_token",
"error_description": "Invalid Value"
}
アクセストークンが有効な場合は、次のようなレスポンスが返却されます。
※ これだけではアクセストークンを十分に検証したとは言えません。後述の検証も必ず行うようにしてください。
{
"azp": "123456789012-foobar.apps.googleusercontent.com",
"aud": "123456789012-foobar.apps.googleusercontent.com",
"sub": "123456789012345678901",
"scope": "https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile openid",
"exp": "1710066556",
"expires_in": "536",
"email": "user@example.com",
"email_verified": "true",
"access_type": "offline"
}
azp
の検証
GCPの画面を開く
- Google Cloud コンソールを開く。
- 上部メニューでプロジェクトを選択 > APIとサービス > 認証情報
クライアントIDをコピー
該当のアプリケーションのクライアントIDをコピーして取得します。
azp
を検証
先ほど取得したazp
の文字列とクライアントIDの文字列が一致するかをバックエンド側で実施してください。
最後に
以上でトークンの検証は終わりです。
お疲れ様でした!!!
Discussion