我们有一个独立的 Java 应用程序(请参阅“已安装的应用程序” https://developers.google.com/identity/protocols/OAuth2#installed)定期运行并使用 Google API(更新客户数据库/ldap/...中的一些信息)。
为了访问 Google API,我们将用户名和密码存储在配置文件中,这是一个安全风险,客户不喜欢这样。所以我们想使用 OAuth2 长寿访问令牌反而。
Google OAuth2 访问令牌的默认过期时间是多少?
因为我们只会有访问令牌在应用程序中,应用程序本身无法刷新它访问令牌过期。
就我个人而言,我认为在这种情况下 OAuth2 的实现不会带来任何重大好处,但让我们关注主要问题 - 默认过期时间。
您不应根据访问令牌的特定生命周期来设计应用程序。假设它们的寿命(非常)短暂。
但是,成功完成 OAuth2 安装的应用程序流程后,您将获得刷新令牌。此刷新令牌永不过期,您可以根据需要使用它来交换访问令牌。保存刷新令牌,并使用它们按需获取访问令牌(然后应立即使用该令牌来访问用户数据)。
编辑:尽管有上面的评论,有两种简单的方法可以获取访问令牌过期时间:
- 它是响应中的一个参数(
expires_in
)当您交换刷新令牌时(使用 /o/oauth2/token 端点)。更多细节。 https://developers.google.com/accounts/docs/OAuth2WebServer#handlingtheresponse
-
还有一个 API 可返回 access_token 的剩余生命周期:
https://www.googleapis.com/oauth2/v1/tokeninfo?access_token= https://www.googleapis.com/oauth2/v1/tokeninfo?access_token={访问令牌}
这将返回一个 json 数组,其中包含expires_in
参数,这是令牌生命周期中剩余的秒数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)