| この記事の要点 |
|
Google OAuth 2.0 のエラーレスポンス
Google の OAuth 2.0 エンドポイント(accounts.google.com/o/oauth2/v2/auth や oauth2.googleapis.com/token)が返すエラーは、RFC 6749 で定められた error / error_description の形式で返ります。原因究明には error_description と Cloud Console の OAuth クライアント設定の突き合わせが基本です。
// token エンドポイントの例
{
"error": "invalid_grant",
"error_description": "Token has been expired or revoked."
}
主要エラー一覧と対処
| error | 意味 | 主な原因 / 対処 |
|---|---|---|
invalid_request | パラメータ不足 / 形式不正 | 必須パラメータ(client_id, redirect_uri, response_type, scope)の漏れ。スペル / URL エンコードを確認 |
invalid_client | クライアント認証失敗 | client_id / client_secret の値が違う。シークレットを再生成して環境変数を更新 |
invalid_grant | 付与情報が無効 | リフレッシュトークン失効、認可コードを 2 回使った、コード期限切れ(数十秒)、ユーザがパスワード変更、未公開アプリで 7 日経過、時刻ずれ |
unauthorized_client | クライアントが許可されていない | そのクライアントタイプに許可されていないグラントを使った。Cloud Console のアプリ種別を確認 |
unsupported_grant_type | 未対応 grant_type | サポートされる: authorization_code / refresh_token / urn:ietf:params:oauth:grant-type:jwt-bearer |
invalid_scope | スコープ不正 | スコープ文字列のスペル誤り、有効化していない API のスコープ要求 |
access_denied | ユーザが同意を拒否 | 同意画面で「許可しない」を押した。アプリ未公開で対象外ユーザがログインした場合も発生 |
redirect_uri_mismatch | リダイレクト URI 不一致 | Cloud Console の「承認済みリダイレクト URI」と完全一致していない。プロトコル / ポート / 末尾スラッシュ / クエリすべて含む |
admin_policy_enforced | Workspace 管理者が制限 | 組織管理者がアプリを許可していない |
disallowed_useragent | 埋め込み WebView 拒否 | WebView / 古い UA からのログインは 2021 年以降不可。システムブラウザを使う |
org_internal | 組織内ユーザ限定 | 「内部」公開設定のアプリに組織外ユーザがアクセス |
deleted_client | 削除済みクライアント | Cloud Console で削除した client_id を使っている |
idpiframe_initialization_failed | 旧 GIS / GAPI クライアント側 | サードパーティ Cookie 無効化など。新 GIS(Google Identity Services)に移行 |
頻発: redirect_uri_mismatch
OAuth 開発で最も詰まるのがこれです。Google は文字列の完全一致を見ています。
| Cloud Console 登録 | リクエスト URI | 結果 |
|---|---|---|
http://localhost:3000/callback | http://localhost:3000/callback | OK |
http://localhost:3000/callback | http://localhost:3000/callback/ | NG(末尾スラッシュ) |
http://localhost:3000/callback | http://127.0.0.1:3000/callback | NG(ホスト名違い) |
https://app.example.com/cb | http://app.example.com/cb | NG(プロトコル違い) |
頻発: invalid_grant
下記いずれかで起きます。とくにリフレッシュトークンの失効条件を覚えておくとよいです。
- 認可コードを2 回トークンエンドポイントに送った
- 認可コードの有効期限切れ(数十秒〜数分)
- ユーザがパスワードを変更した、または「アカウントへのアクセス権を取り消し」した
- 未公開(テスト)アプリのリフレッシュトークンは7 日で失効
- サーバの時刻ずれ(JWT で
iat/expが不整合) - 1 ユーザあたり 100 個を超えるリフレッシュトークンを発行(古いものから失効)
同意のリセットと再取得
スコープを追加した、または失効したリフレッシュトークンを取り直したいときは、認可リクエストに prompt=consent と access_type=offline を付けます。
https://accounts.google.com/o/oauth2/v2/auth
?client_id=...
&redirect_uri=https://app.example.com/oauth/callback
&response_type=code
&scope=openid%20email%20profile
&access_type=offline (リフレッシュトークン要求)
&prompt=consent (毎回同意画面を出して再発行)
&state=xxxxxxxx
デバッグの手順
errorとerror_descriptionを必ずログに残す- Cloud Console の OAuth クライアント設定(種別 / 承認済み JS 元 / 承認済みリダイレクト URI)を再確認
- 使っているスコープに対応する API が「有効な API とサービス」で有効化されているか
- 未公開アプリならテストユーザに対象 Google アカウントを追加
- サーバ時刻が NTP で同期されているか確認
関連
- Google OAuth 2.0 — 親記事
- OAuth 2.0 — 標準仕様(RFC 6749)
- OpenID Connect — 認証層
- Google Cloud Console — クライアント管理
子ページ
同階層のページ
同階層のページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- djangoのテンプレートの作成とヘッダー・フッターの共通化 2026-10-03 21:41:49
- テンプレートフラグメント(ヘッダー等の共有化) 2026-10-03 21:41:49
- reCAPTCHA v3 使い方(サンプル付き) 2026-10-03 21:37:05
- Content-Type一覧|MIMEタイプとはとHTTPでの主な使用場面 2026-10-03 21:37:05
- SpringにおけるAOPの使い方 2026-10-03 21:37:05
- X (Twitter) API でツイートできないがエラーが出ない問題の原因と対処 2026-10-03 11:33:01
- X (Twitter) API アプリケーション登録完全ガイド|v2・Bearer Token・OAuth 2.0 PKCE 2026-10-03 11:33:01
- X (Twitter) API 完全ガイド|従量課金の料金・単価(2026年10月)と v2 移行 2026-10-03 11:32:40
- Google DeepMind とは?Gemini・AlphaFold の開発元 2026-10-03 11:26:56
- Cursor とは?AI 統合型コードエディタの使い方・料金 2026-10-03 11:26:56
- Claude (Anthropic) とは?AIチャットの使い方・モデルファミリ・API 2026-10-03 11:26:56
- AIベンダー一覧:OpenAI・Anthropic・Google DeepMind・Microsoft・Meta 2026-10-03 11:26:56
- クラウド・インフラ完全ガイド — AWS/Azure/GCP/Kubernetes 2026-10-03 11:26:56
- テキストエディタ完全比較 (VS Code / Cursor / Vim / Emacs / IDE) 2026-10-03 11:26:56
- プログラミング学習プラットフォーム|Scratch・micro:bit ほか 2026-10-03 11:26:56