使用Google Signs In for Websites时,在浏览器中刷新过期的jwt

时间:2016-07-07 08:09:42

标签: jwt google-signin

我主要关注如何使用Google登录进行客户端身份验证的this教程,获取JWT,并使用Google的tokeninfo端点在每个请求上验证服务器上的JWT。

一切都很有效,除非令牌在60分钟后过期,我不知道如何刷新令牌。

1 个答案:

答案 0 :(得分:1)

不应在此刷新中涉及API服务器。客户端负责从身份验证服务(在本例中为google)中获取刷新的令牌,但是没有关于如何执行此操作的文档。

我观察到的是id_token实际上是在expires_at通过之前由gapi库自动更新的,通常是在大约5分钟之前。

authInstance = gapi.auth2.getAuthInstance()
currentUser = authInstance.currentUser.get()
authResponse = currentUser.getAuthResponse()

然后您可以通过执行以下操作获取id_token和expired_at:

authResponse.id_token
authResponse.expires_at

您可以通过执行以下操作来监控此更新:

authResponse.listen(function (gUser) {
  const jwt = gUser.getAuthResponse().id_token
  // ...you now have an updated jwt to send in all future API calls
}