OAuth2用户和谷歌API:访问令牌到期时间?(OAuth2 and Google API: Ac

2019-07-05 02:18发布

我们有一个独立的Java应用程序(请参阅“安装应用程序”: https://developers.google.com/accounts/docs/OAuth2 )的定期运行,并使用谷歌API(从客户数据库/ LDAP更新一些信息/ ...) 。

要访问谷歌的API,我们存储的用户名和密码,在配置文件中,这是一个安全风险,客户不喜欢这样。 所以我们想用的OAuth2长寿的访问令牌来代替。

什么`默认到期时间为谷歌的OAuth2访问令牌?

正如我们将在应用程序只能访问令牌,应用程序时,访问令牌到期本身无法刷新它...

我个人认为,在这种情况下的OAuth2实施不会带来任何重大利益,而是突然想到专注于主要问题-默认过期时间。

Answer 1:

你不应该基于访问令牌的具体寿​​命设计应用程序。 只是假定他们是(非常)短暂的。

然而,经过了OAuth2成功完成安装的应用程序流量,你会得到一个刷新令牌。 这刷新令牌永不过期,你可以用它来根据需要接入令牌交换它。 保存刷新令牌,并用它们来获取按需访问令牌(这应该然后立即被用来获得访问用户数据)。

编辑:我的上述评论虽然,有两种简单的方法来获得访问令牌到期时间:

  1. 这是在响应(参数expires_in )当您更换你的刷新令牌(使用/ O /的oauth2 /令牌终点)。 更多细节。
  2. 还有一个返回的的access_token的剩余寿命的API:

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

    这将返回一个JSON阵列将包含一个expires_in参数,这是留在令牌的寿命的秒数。



Answer 2:

对于谷歌的oauth2访问令牌的默认EXPIRY_DATE为1小时。 该EXPIRY_DATE是在以毫秒为单位的Unix纪元时间。 如果你想在人类可读的格式来阅读,那么你可以简单地点击此处查看.. Unix时间戳到人类可读的时间



Answer 3:

这里是一个进一步观察到谷歌访问令牌到期的问题。 我有利用谷歌的oauth2的服务器,它使用端点https://www.googleapis.com/oauth2/v3/userinfo?access_token=YOUR_ACCESS_TOKEN做认证的第一级。 我发现的是,以这种方式使用的访问令牌的生活比60分钟更长的时间。 我不能肯定时,只有以这种方式使用其过期。

有没有人见过这样才使用的访问令牌的到期持续时间的文件?



文章来源: OAuth2 and Google API: Access token expiration time?