OAuth2和Google API:访问令牌过期时间?
我们有一个独立的Java应用程序(请参阅“安装的应用程序”: https : //developers.google.com/accounts/docs/OAuth2 ),它定期运行并使用Google API(更新来自客户数据库/ ldap / …的一些信息) 。
要访问Google API,我们将用户名和密码存储在configuration文件中,这是一种安全风险,客户不喜欢这样做。 所以我们希望使用OAuth2长生存取令牌。
Google OAuth2访问令牌的默认到期时间是什么?
因为我们只有在应用程序中访问令牌,所以当访问令牌到期时,应用程序本身不能刷新它。
就我个人而言,我认为在这种情况下OAuth2的实施不会带来任何重大的好处,但让我们专注于主要问题 – 默认到期时间。
您不应该根据访问令牌的特定生命周期来devise您的应用程序。 假设他们(非常)短命。
但是,在成功完成OAuth2安装的应用程序stream程之后,您将收回刷新令牌。 此刷新令牌永不过期,您可以根据需要使用它来交换访问令牌。 保存刷新令牌,并使用它们按需获取访问令牌(应立即用于访问用户数据)。
编辑:尽pipe我的意见,有两个简单的方法来获取访问令牌到期时间:
- 当您更新刷新标记(使用/ o / oauth2 / token端点)时,它是响应中的一个参数(
expires_in
)。 更多细节。 -
还有一个API可以返回access_token的剩余生命周期:
https://www.googleapis.com/oauth2/v1/tokeninfo?access_token= {accessToken}
这将返回一个包含
expires_in
参数的json数组,expires_in
牌生命周期中剩余的秒数。
谷歌oauth2访问令牌的默认expiry_date是1小时。 expiry_date在Unix时代以毫秒为单位。 如果你想阅读这个人类可读的格式,那么你可以简单地在这里检查它。Unix时间戳到人类可读的时间
以下是对Google访问令牌到期问题的进一步观察。 我有一台使用Google Oauth2的服务器,它使用端点https://www.googleapis.com/oauth2/v3/userinfo?access_token=YOUR_ACCESS_TOKEN
进行一级authentication。 我发现,使用这种方法,访问令牌的寿命要比60分钟长得多。 我不确定它是否仅在以这种方式使用时才会过期。
有没有人见过这种使用权限的使用期限的文件?