我已经阅读了很多关于Web上的Firebase auth的文章,但是找不到关于应该如何在客户端使用idToken的任何明确解释。这是我到目前为止所知道的
用户登录后,我们可以使用以下方法获取令牌,如果令牌已过期,它将自动刷新令牌
firebase.auth().currentUser.getIdToken(/* forceRefresh */ true).then(function(idToken) {
// Send token to your backend via HTTPS
// ...
}).catch(function(error) {
// Handle error
});
然后我们可以将此令牌发送到后端,在这里我们可以使用firebase admin SDK验证ID令牌并获取用户uid。
admin.auth().verifyIdToken(idToken).then(function(decodedToken) {
var uid = decodedToken.uid;
// ...
}).catch(function(error) {
// Handle error
});
这是我不理解的东西。
答案 0 :(得分:1)
否;如您所述,令牌有效期为一个小时。除非有理由刷新(例如,如果您添加custom claims),否则您可以在此期间重用同一令牌。
理想情况下,当令牌无效时,服务器将返回401 Unauthorized
或其他内容。大多数REST库都提供了在请求链中添加拦截器的功能,因此您可以检查是否返回了401
代码,并且仅在必要时刷新令牌。
除非您的业务逻辑需要,否则不需要后端会话。 Firebase库将为您处理持久性。