Google更新トークンに有効期限はありますか?


108

テストの目的で更新トークンを短期間に数回使用しましたが、Google更新トークンが期限切れになるかどうか疑問に思いますか?同じ更新トークンを使用して、別のアクセストークンを長期間(1週間または数か月)何度も取得できますか?


Rubyを使用していますか、それともコードサンプルがありますか?
Thufir 2012年

回答:


146

Google Authサーバーが発行した更新トークンが期限切れになることはありません。これが更新トークンの要点です。ユーザーがアプリケーションへのアクセスを取り消すと、更新トークンの有効期限が切れます(または、無許可になるはずです)。

このドキュメントを参照してください。更新トークンの機能が明確に記載されています。

長期的なトークンを発行する代わりに(通常は1年または無制限のライフタイムで有効)、サーバーは短期間のアクセストークンと長期の更新トークンを発行できます。つまり、アクセスを承認したユーザーがアプリケーションへのアクセスを取り消すまで、簡単にリフレッシュトークンを使用できます。


6
「1年間有効」の部分では、提案したほど明確ではありません。しかし、実際には問題を引き起こさないようなので、更新トークンは常緑であると想定しています。
mahemoff 2013年

54
トークンの有効期限付与されたトークンが機能しなくなる可能性を予測するには、コードを記述する必要があります。トークンは、次のいずれかの理由で機能しなくなる可能性があります。ユーザーがアクセスを取り消した。トークンは6か月間使用されていません。ユーザーアカウントが特定の数のトークン要求を超えました。現在、Googleユーザーアカウントごとに25トークンの制限があります。ユーザーアカウントに25の有効なトークンがある場合、次の認証要求は成功しますが、ユーザーに表示される警告なしに、最も古い未解決のトークンを静かに無効にします。(developers.google.com/accounts/docs/OAuth2から)
bazik 2014年

17
「長期間有効」の更新トークンは、「無期限」とは異なります。
Kapé

1
では、更新トークンがまだ有効かどうかをコードで確認するにはどうすればよいでしょうか。
SsjCosty

3
@Shadow更新トークンがめったに期限切れにならない場合、提案されているように、Googleがそもそも有効期限のないアクセストークンを発行しないのはなぜですか。私が理解している限り、oAuth 2.0を使用して発行されたアクセストークンを使用して、更新トークンを要求できます。永続的なアクセストークンを用意し、更新トークンの余分な呼び出しを切り捨てないのはなぜですか。
Charles Robertson、

62

これは非常に混乱するスレッドです。最初の答えは正しいように見えますが、実際にはグーグルからの信頼できるものを引用していません。

私が見つけた最も決定的な答えは、実際にはトークンを取得する開発者の遊び場です。ステップ2の下部には、次のように記載されています。

「注:OAuth Playgroundは更新トークンを保存しませんが、更新トークンは期限切れにならないため、手動で取り消す場合は、ユーザーはGoogleアカウントの承認済みアクセスページにアクセスする必要があります。」

https://developers.google.com/oauthplayground/


2
ここでのベストアンサー-誰も賛成していない理由が信じられない理由-多くの感謝-更新トークンを期限切れにならないように扱います-ただし、サインイン時にユーザーが更新トークンを取り消した場合に備えて、新しい更新トークンを確認してください。このシナリオでは、Googleが新しい更新トークンを提供しますサインイン時に更新トークンを更新する
danday74

14

私はそれが完全に本当だとは思いません:

発行される更新トークンの数には制限があることに注意してください。クライアントとユーザーの組み合わせごとに1つの制限があり、すべてのクライアントのユーザーごとに別の制限があります。リフレッシュトークンは長期的なストレージに保存し、有効である限り使用し続ける必要があります。アプリケーションが要求する更新トークンが多すぎると、これらの制限に達する可能性があります。その場合、古い更新トークンは機能しなくなります。

このページから:https : //developers.google.com/youtube/v3/guides/authentication#installed-apps

これはyouTubeドキュメント(他のAPIドキュメントよりもはるかに優れていることがわかります)によるものですが、すべてのGoogleアプリで同じだと思います。



5

2017年のある時点でルールが変更されたので、最良の答えは製品によって異なると思います。たとえば、Gmail APIでは、Oauth 2.0更新トークンはパスワード変更時に期限切れになります。こちらをご覧くださいhttps://support.google.com/a/answer/6328616?hl=en

以前はAPIアクセスをセットアップし、新しいGmailユーザーをセットアップするときに更新トークンを生成していたため、メールをアーカイブすることができました(法律でこれを行う必要があります)が、パスワードを変更するとすぐに、更新トークン取り消されます。

おそらくYouTube、マップの場合、更新トークンはまだ本当に長持ちしますが、Gmail APIの場合は短いトークンを使用してください。


それのようなルックスは、10月5日、2016年に正式になったdevelopers.googleblog.com/2016/09/...
TonyE

2

リフレッシュトークンの主な概念は、トークンが長期間持続し、期限が切れないことです。

アクセストークンには有効期限があり、有効期限が切れます。有効期限が切れると、更新トークンを取得できます。これは、ユーザーが自分のアカウントを取り消すまで何度も使用されます。


0

これを以下からお読みくださいhttps : //developers.google.com/identity/protocols/oauth2#expiration 付与された更新トークンが機能しなくなる可能性を予測するには、コードを記述する必要があります。次のいずれかの理由により、更新トークンが機能しなくなる可能性があります。

ユーザーがアプリのアクセスを取り消しました。更新トークンは6か月間使用されていません。ユーザーがパスワードを変更し、更新トークンにGmailスコープが含まれています。ユーザーアカウントが許可された(ライブ)リフレッシュトークンの最大数を超えました。現在、クライアントごとのユーザーアカウントごとに50の更新トークンの制限があります。制限に達した場合、新しいリフレッシュトークンを作成すると、警告なしに最も古いリフレッシュトークンが自動的に無効になります。この制限はサービスアカウントには適用されません。

また、ユーザーアカウントまたはサービスアカウントがすべてのクライアントにわたって保持できる更新トークンの総数には、より大きな制限があります。ほとんどの通常のユーザーはこの制限を超えることはありませんが、開発者のテストアカウントは制限を超える可能性があります。


-2

さらに調査を行ったところ、最初の「オフライン」リクエスト中に、Googleアクセストークンが更新トークンの取得に使用されているようです。これ以降、更新トークンを使用して新しいアクセストークンが発行されます。この考え方は、アクセストークンは短期的なトークンですが、長期的な更新トークンによって更新できるというものです。これにより、URLの「コード」変数を要求する必要がなくなります。これには、2つのエンドポイントアプローチが必要であり、参照元ベースの要求を使用して開始する必要があります。

http://www.jensbits.com/2012/01/09/google-api-offline-access-using-oauth-2-0-refresh-token/

Dropboxなどの一部のREST APIサービスは、永続的なアクセストークンを発行しますが、Googleは短期間のアクセストークンを発行します。PayPalは妥協案を使用して、URIリファラーを適用せずにアクセストークンを取得できるようにします。つまり、プロセスを開始するためにリンクをクリックする必要なく、アクセストークンを取得できます。Googleの方法論では、APIルーチンは、使用する必要がある場合にのみ呼び出す必要があります。基本的に、コールはリファラーベースの手順を介して開始されます。これは、有効期間が短いアクセストークン、またはチェーンで更新する必要があるアクセストークンを発行することによって制御されます。これにより、開発者はシステムの流れ方についてより慎重に考える必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.