我正在使用web firebase javascript通过电子邮件和密码进行身份验证。此过程生成一个令牌,我用它来验证我的nodejs后端使用firebase-admin。生成此令牌后,我将其存储在浏览器本地/会话存储中。
前端是AngularJs,我拦截了http请求以注入存储在浏览器中的令牌。
这样做很好,但是一段时间后这个令牌就会过期。那么在它发送到nodejs api之前刷新这个令牌的最佳方法是什么?
注意:我应该为每个请求取消currentUser.getToken()吗?
答案 0 :(得分:3)
currentUser.getToken(true)
仅在当前令牌过期时刷新令牌!因此,它不会为Firebase创建不需要的流量或请求!
firebase.auth().currentUser.getToken(true)
.then(function(idToken) {
// ... do stuff!
}).catch(function(error) {
if (error) throw error
});
在这里,您会看到我添加了true
作为getToken()
函数的参数。这迫使刷新!
以下是getToken()
函数的Firebase Documentation。
我希望有所帮助!