有谁知道令牌到期需要多长时间?现在没有选项可以在控制台上设置令牌有效性。
答案 0 :(得分:44)
在最新版本的Firebase身份验证中,登录会话不再过期。相反,它使用长期帐户令牌和短期,自动刷新的访问令牌的组合,以获得两全其美。
如果您想结束用户的会话,可以拨打signOut()
。
答案 1 :(得分:23)
它确实会过期。登录一小时后,令牌ID到期。如果您尝试验证sdk会返回错误"错误:Firebase ID令牌已过期。从您的客户端应用中获取新的令牌,然后重试。有关如何检索ID令牌的详细信息,请参阅https://firebase.google.com/docs/auth/server/verify-id-tokens。"
是否有这种方法可以将到期时间更改为Firebase令牌,而不是自定义令牌。
任何知道这如何运作的人。
答案 2 :(得分:2)
对于仍感到困惑的任何人,这就是explained in great detail here
答案 3 :(得分:1)
如果上述答案仍然让您感到困惑, 这就是我所做的:
firebase.auth().onAuthStateChanged(async user => {
if (user) {
const lastSignInTime = new Date(user.metadata.lastSignInTime);
const lastSignInTimeTimeStamp = Math.round(lastSignInTime.getTime() / 1000);
const yesterdayTimeStamp = Math.round(new Date().getTime() / 1000) - (24 * 3600);
if(lastSignInTimeTimeStamp < yesterdayTimeStamp){
await firebase.auth().signOut()
this.setState({
loggedIn: false
});
return false;
}
this.setState({
loggedIn: true,
user
});
}
})