OAuth2和 Google API: 访问令牌过期时间?

我们有一个独立的 Java 应用程序(请参阅 “已安装的应用程序”) ,它定期运行并使用 Google API (更新来自客户数据库/ldap/... 的一些信息)。

要访问 GoogleAPI,我们将用户名和密码存储在配置文件中,这是一个安全风险,客户不喜欢这样。因此,我们希望改用 OAuth2长寿 访问令牌

GoogleOAuth2访问令牌的默认过期时间是多久?

由于我们将只有 访问令牌在应用程序中,应用程序本身不能刷新它时,访问令牌过期。

我个人认为 OAuth2在这种情况下的实现不会带来任何主要的好处,但是让我们把重点放在主要的问题-缺省过期时间上。

148726 次浏览

您不应该基于特定的访问令牌生存期来设计应用程序,只需假设它们(非常)短暂。

但是,在成功完成 OAuth2安装的应用程序流之后,您将获得一个刷新令牌。此刷新令牌永远不会过期,您可以根据需要使用它来交换访问令牌。保存刷新令牌,并使用它们按需获取访问令牌(然后应该立即使用它们获取对用户数据的访问)。

编辑: 尽管如此,有两种简单的方法可以获得访问令牌过期时间:

  1. 它是在交换刷新令牌(使用/o/oauth2/令牌端点)时响应(expires_in)中的一个参数
  2. 还有一个 API 返回 access _ token 的剩余生命周期:

    Https://www.googleapis.com/oauth2/v1/tokeninfo?access_token= { access Token }

    这将返回一个包含 expires_in参数的 json 数组,expires_in参数是令牌生命周期中剩余的秒数。

The default expiry_date for google oauth2 access token is 1 hour. The expiry_date is in the Unix epoch time in milliseconds. If you want to read this in human readable format then you can simply check it here..Unix 时间戳到人类可读时间