Google Oauth2:在客户端刷新id_token

时间:2016-09-04 09:20:10

标签: google-api google-oauth google-oauth2

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

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

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

有什么方法可以刷新id_token

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

  

当id_token到期时,客户端会从中请求新的令牌   服务器,以便用户不需要再次授权。

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