通常、Google OAuth2.0のメカニズムはうまく機能しています。OAuth2.0トークンの異常な動作(無効な資格情報401)
- ユーザーは、選択した範囲でGoogleアカウントにアクセスする許可を確認します。
- リフレッシュトークンが取得され、長時間のストレージに保存されます。
- アクセストークンが期限切れになった場合に必要なアクセストークンがすべて取得され、APIへのアクセスに使用されます。
しかし、時には(6ヶ月以上のため、これまで2回だけ)私は奇妙な行動を経験した:GoogleのAPIに
要求が無効な資格情報(401)エラーを返します。 (格納されたリフレッシュトークンを使用して)アクセストークンを更新することは役に立ちません。ここで
は、この問題をテストするときに、私が持っているいくつかの構造化され出力されます:
+ ------------------------------------------------------------------------- + | 1.TRYING TO REFRESH THE TOKEN. | | 2.DONE REFRESHING THE TOKEN. | + ------------------------------------------------------------------------- + | access: **************************************************** | | refresh: ********************************************* | | expires: 3600 | | created: 2013-07-23 13:12:36 | + ------------------------------------------------------------------------- +
私も https://www.googleapis.com/oauth2/v1/tokeninfo
+ ------------------------------------------------------------------------- + | 1. TRYING TO CHECK THE TOKEN . | | 2. DONE CHECKING THE TOKEN THE TOKEN. | + ------------------------------------------------------------------------- + | issued_to: ************.apps.googleusercontent.com | | audience: ************.apps.googleusercontent.com | | user_id: ************ | | expires_in: 3600 | | email: **********@gmail.com | | verified_email: 1 | | access_type: offline | | scopes:: | + ------------------------------------------------------------------------- + | https://www.googleapis.com/auth/userinfo.email | | https://www.googleapis.com/auth/userinfo.profile | | https://www.googleapis.com/auth/plus.me | | https://www.googleapis.com/auth/drive | + ------------------------------------------------------------------------- +に要求を送信することにより、「新鮮な」アクセストークンを検証しようとしました
ドライブフィードにアクセスしようとすると、応答は次のようになります。
Error calling GET https://www.googleapis.com/drive/v2/files (401) Invalid Credentials domain: global reason: authError message: Invalid Credentials locationType: header location: Authorization
カレンダーでも同じ問題が発生しました。 So:
- トークンは以前(すべてが機能していた)有効でした。
- トークンをリフレッシュしても機能します。
- フィードを要求すると、「無効な資格情報」エラーが返されます。
- 他のすべてのトークンはまだ機能しており、コードは有効です。
通常、トークンが取り消されると、トークンを更新しようとすると "invalid_grant"エラーが返されます。この現象の理由ことができるもの
質問
- ?リフレッシュトークンが取り消されたり、何らかの方法で無効になった場合は、新しいアクセストークンの要求によってエラーが発生しますか?
- リフレッシュトークンを検証する方法はありますか? エラー時に、GoogleのAPIドキュメント毎
私は多くの結果的な要求の後で同じ奇妙な動作を経験します。 – ageorgios