我们有一个独立的Java应用程序(请参阅“安装应用程序”: https://developers.google.com/accounts/docs/OAuth2 )的定期运行,并使用谷歌API(从客户数据库/ LDAP更新一些信息/ ...) 。
要访问谷歌的API,我们存储的用户名和密码,在配置文件中,这是一个安全风险,客户不喜欢这样。 所以我们想用的OAuth2长寿的访问令牌来代替。
什么`默认到期时间为谷歌的OAuth2访问令牌?
正如我们将在应用程序只能访问令牌,应用程序时,访问令牌到期本身无法刷新它...
我个人认为,在这种情况下的OAuth2实施不会带来任何重大利益,而是突然想到专注于主要问题-默认过期时间。
你不应该基于访问令牌的具体寿命设计应用程序。 只是假定他们是(非常)短暂的。
然而,经过了OAuth2成功完成安装的应用程序流量,你会得到一个刷新令牌。 这刷新令牌永不过期,你可以用它来根据需要接入令牌交换它。 保存刷新令牌,并用它们来获取按需访问令牌(这应该然后立即被用来获得访问用户数据)。
编辑:我的上述评论虽然,有两种简单的方法来获得访问令牌到期时间:
- 这是在响应(参数
expires_in
)当您更换你的刷新令牌(使用/ O /的oauth2 /令牌终点)。 更多细节。 还有一个返回的的access_token的剩余寿命的API:
https://www.googleapis.com/oauth2/v1/tokeninfo?access_token= {}的accessToken
这将返回一个JSON阵列将包含一个expires_in
参数,这是留在令牌的寿命的秒数。
对于谷歌的oauth2访问令牌的默认EXPIRY_DATE为1小时。 该EXPIRY_DATE是在以毫秒为单位的Unix纪元时间。 如果你想在人类可读的格式来阅读,那么你可以简单地点击此处查看.. Unix时间戳到人类可读的时间
这里是一个进一步观察到谷歌访问令牌到期的问题。 我有利用谷歌的oauth2的服务器,它使用端点https://www.googleapis.com/oauth2/v3/userinfo?access_token=YOUR_ACCESS_TOKEN
做认证的第一级。 我发现的是,以这种方式使用的访问令牌的生活比60分钟更长的时间。 我不能肯定时,只有以这种方式使用其过期。
有没有人见过这样才使用的访问令牌的到期持续时间的文件?