shi*_*poo 37 session token firebase firebase-authentication
有谁知道令牌到期需要多长时间?现在没有选项可以在控制台上设置令牌有效性.
Fra*_*len 45
在最新版本的Firebase身份验证中,登录会话不再过期.相反,它使用长期帐户令牌和短期,自动刷新的访问令牌的组合,以获得两全其美.
如果要结束用户的会话,可以拨打电话signOut().
Mig*_*ero 24
它确实到期了.登录一小时后,令牌ID到期.如果您尝试验证sdk会返回错误"错误:Firebase ID令牌已过期.请从您的客户端应用中获取新令牌,然后重试.请参阅https://firebase.google.com/docs/auth/server/verify-id -tokens了解如何检索ID令牌的详细信息."
是否有这种方法可以将到期时间更改为Firebase令牌,而不是自定义令牌.
知道这是如何工作的任何人.
对于任何仍然感到困惑的人,这里都非常详细地解释了
如果您的应用程序包含自定义后端服务器,则可以并且应该使用 ID 令牌与其进行安全通信。发送用户的 ID 令牌可以通过 Firebase Admin SDK(或者如果 Firebase 没有 Admin SDK 甚至第三方 JWT 库)进行验证,而不是使用用户的原始 uid 发送请求,这很容易被恶意客户端欺骗以您选择的语言)。为此,现代客户端 SDK 提供了方便的方法来检索当前登录用户的 ID 令牌。Admin SDK 确保 ID 令牌有效并返回解码后的令牌,其中包括其所属用户的 uid 以及添加到其中的任何自定义声明。
小智 6
如果上面的答案仍然让您感到困惑,这就是我所做的:
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
});
}
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23591 次 |
| 最近记录: |