刷新Firebase令牌
问题描述:
我正在使用web firebase javascript通过电子邮件和密码进行身份验证。这个过程生成一个令牌,我使用firebase-admin在我的nodejs后端验证。一旦生成该令牌,我将其存储在浏览器本地/会话存储中。刷新Firebase令牌
前端是AngularJs,我拦截了http请求以注入存储在浏览器中的令牌。
这工作正常,但过了一段时间此令牌过期。那么在它发送给nodejs api之前刷新这个令牌的最好方法是什么?
请注意:我是否需要每次请求currentUser.getToken()?
答
The currentUser.getToken(true)
only当前令牌已过期时刷新令牌!所以它不会创建不需要的流量或请求到Firebase!
firebase.auth().currentUser.getToken(true)
.then(function(idToken) {
// ... do stuff!
}).catch(function(error) {
if (error) throw error
});
在这里,你会看到,我添加true
作为参数传递给getToken()
功能。这迫使刷新!
这是getToken()
函数的Firebase Documentation。
我希望有帮助!
我认为你有它倒退。该文档指出,如果forceRefresh为true,那么它将刷新而不管过期。跳过forceRefrsh参数(默认为false)将返回相同的标记,直到它过期,然后提供一个新标记。 – WillB
它看起来像你不能指定parameterrter ..我使用[4.4.0 JS SDK](https://github.com/firebase/firebase-js-sdk/blob/master/src/messaging /controllers/window-controller.ts) – peval27