首页 文章

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

提问于
浏览
48

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

要访问Google API,我们会在配置文件中存储用户名和密码,这是一种安全风险,客户不喜欢这样做 . 因此,我们希望使用OAuth2长期访问令牌 .

what`s default expiration time for Google OAuth2 access tokens ?

由于我们在应用程序中只有访问令牌,因此当访问令牌到期时,应用程序本身无法刷新它...

我个人认为在这种情况下OAuth2的实现不会带来任何重大好处,但让我们关注主要问题 - 默认的到期时间 .

3 回答

  • -1

    您不应该根据访问令牌的特定生命周期来设计您的应用程序 . 假设他们(非常)短暂 .

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

    编辑:尽管我上面的评论,有两种简单的方法来获取访问令牌到期时间:

    • 当您更换刷新令牌(使用/ o / oauth2 / token endpoints )时,它是响应中的参数( expires_in ) . More details.

    • 还有一个API可以返回access_token的剩余生命周期:

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

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

  • 84

    Google oauth2访问令牌的默认expiry_date为1小时 . expiry_date在Unix纪元时间内以毫秒为单位 . 如果您想以人类可读的格式阅读,那么您可以在这里查看.. Unix timestamp to human readable time

  • 2

    以下是对Google访问令牌到期问题的进一步观察 . 我有一台使用Google Oauth2的服务器,它使用 endpoints https://www.googleapis.com/oauth2/v3/userinfo?access_token=YOUR_ACCESS_TOKEN 进行第一级身份验证 . 我've found is that used in this way, the access token has a much longer duration of life than 60 minutes. I'我不确定它只会以这种方式使用时到期 .

    有没有人见过以这种方式使用的访问令牌的到期时间的文件?

相关问题