69

定期的に実行され、Google API (顧客データベース/ldap/... からいくつかの情報を更新) を使用するスタンドアロン Java アプリケーション ( 「インストールされたアプリケーション」を参照) があります。

Google API にアクセスするために、ユーザー名とパスワードを構成ファイルに保存しますが、これはセキュリティ リスクであり、顧客はそれを好まない. そのため、代わりにOAuth2 の長寿命アクセス トークンを使用したいと考えています。

Google OAuth2 アクセス トークンのデフォルトの有効期限は?

アプリケーションにはアクセス トークンしかないため、アクセス トークンの有効期限が切れると、アプリ自体はそれを更新できません。

個人的には、この場合の OAuth2 実装は大きなメリットをもたらさないと思いますが、主な問題であるデフォルトの有効期限に焦点を当てましょう。

4

2 に答える 2

125

アクセス トークンの特定の有効期間に基づいてアプリケーションを設計しないでください。それらが(非常に)短命であると仮定してください。

ただし、OAuth2 インストール済みアプリケーション フローが正常に完了すると、更新トークンが返されます。この更新トークンは期限切れになることはなく、必要に応じてアクセス トークンと交換するために使用できます。更新トークンを保存し、それらを使用してオンデマンドでアクセス トークンを取得します (ユーザー データへのアクセスにすぐに使用する必要があります)。

編集: 上記の私のコメントにもかかわらず、アクセス トークンの有効期限を取得する簡単な方法が 2 つあります。

  1. これは、(/o/oauth2/token エンドポイントを使用して) リフレッシュ トークンを交換するときの応答 ( expires_in) 内のパラメーターです。詳細。
  2. access_token の残りの有効期間を返す API もあります。

    https://www.googleapis.com/oauth2/v1/tokeninfo?access_token= {accessToken}

    これは、パラメーターを含む json 配列を返しexpires_inます。これは、トークンの有効期間の残りの秒数です。

于 2012-12-13T02:00:44.163 に答える