【问题标题】:Google Oauth2: Refreshing id_token on the client sideGoogle Oauth2:在客户端刷新 id_token
【发布时间】:2017-01-11 22:16:03
【问题描述】:

我正在开发一个 angularjs 网络应用程序。

要访问服务器端 api,我需要添加一个 id_token 标头和 我收到了一个 id_token,使用 https://accounts.google.com/o/oauth2/auth endpoint

问题的关键在于 - id_token 有一个到期日期。在访问服务器 API 之前,我需要确保 id_token 尚未过期,但如果是,显而易见的选择是刷新它

有什么方法可以刷新 id_token

我知道我可以将 access_type 更改为 offline,并收到 refresh_token,但要求 offline 访问 似乎很奇怪,基本上在我的情况下,用户仅在他实际在线使用网络应用程序时才与服务器交互。

【问题讨论】:

标签: google-api google-oauth


【解决方案1】:

忘记刷新令牌和离线访问。此方法仅适用于服务器和桌面应用程序。在浏览器中存在刷新令牌将是一个巨大的安全漏洞。

如果您阅读了 Google JS OAuth 库的文档,您会发现在当前访问令牌过期后很容易获得新的访问令牌。请参阅 gapi.auth.authorize() 并注意关于 immediate=true 的注释。请注意,此方法已被弃用,尽管它有效。你需要的一切都在https://developers.google.com/api-client-library/javascript/reference/referencedocs

【讨论】:

【解决方案2】:

当 id_token 过期时,客户端从 服务器,用户无需再次授权。

来自IMPLEMENTING A SILENT TOKEN RENEW IN ANGULAR FOR THE OPENID CONNECT IMPLICIT FLOW

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-13
    • 2016-06-01
    • 2016-05-31
    • 2020-11-24
    • 2015-09-10
    • 2019-03-03
    • 1970-01-01
    • 2012-06-25
    相关资源
    最近更新 更多