我主要关注如何使用Google登录进行客户端身份验证的this教程,获取JWT,并使用Google的tokeninfo端点在每个请求上验证服务器上的JWT。
一切都很有效,除非令牌在60分钟后过期,我不知道如何刷新令牌。
答案 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
}