- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个登录页面,可以使用signInWithEmailAndPassword()
使用 Javascript 客户端 SDK。
如果登录成功,用户将被重定向(连同 idToken)到成员(member)页面。
在服务器端(nodejs使用firebase admin SDK),成员(member)页面检查idToken的有效性,如果有效,则从Firebase获取用户特定的数据并显示在网页上。在成员(member)页面上,有很多数据可以查看/编辑/删除等。因此,用户可能会在此页面上花费一个多小时并不是不可想象的。
我的问题是,我找不到检测 idToken 是否已过期的方法。理想情况下,我想刷新并获得一个新的 idToken。那可能吗?如果那不可能,我想在 idToken 过期时将用户重定向到登录页面。
但我无法弄清楚如何实现其中任何一个。看起来 onAuthStateChanged
和 onIdTokenChanged
在 idToken 过期时不会被触发。而且我无法像 firebase.auth().currentUser.getIdToken(true)
那样强制刷新 idToken。因为在成员(member)页面上,firebase.auth().currentUser
返回 null。
关于如何处理这种情况有什么建议吗?
谢谢。
最佳答案
使用 Firebase Node.js Admin SDK,您可以在调用 verifyIdToken()
时通过将 checkRevoked
参数设置为 来检查已撤销或过期的 ID token 是的
。
verifyIdToken(idToken: string, checkRevoked?: boolean): Promise<DecodedIdToken>
checkedRevoked: boolean
Whether to check if the ID token was revoked. This requires an extra request to the Firebase Auth backend to check thetokensValidAfterTime
time for the corresponding user. When not specified, this additional check is not applied.
admin.auth().verifyIdToken(idToken, true)
.then(function(decodedToken) {
let uid = decodedToken.uid;
// ...
}).catch(function(error) {
// Handle error for expired ID token
});
或者,可以在客户端检查 ID token 负载声明。有关如何 Verify ID tokens using a third-party JWT library 的文档显示有效负载声明。
exp
expiration time: Must be in the future. The time is measured in seconds since the UNIX epoch.
jwt.io引用支持客户端 token 验证的库。
另见:How to decode the JWT encoded token payload on client-side in angular 5?
关于javascript - 如何检测 idToken 过期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57312411/
当您在 memcached 中设置 key 过期时,它实际上是在过期时被删除,还是在请求 key 时被删除(get)并且有效期已过。换句话说,过期会自动从 memcached 中删除值,还是简单地将其
Microsoft 是否已将客户端 secret 的有效期更改为最长 2 年?不能再选择“从不”了吗? 最佳答案 我自己也遇到了这个问题。您可以使用Powershell设置添加2年以上的凭据。所以我猜
我正在尝试对我网站上的 csv 文件强制禁止缓存。 我根据 apache 的文档将这些行添加到 httpd.conf: ExpiresActive On ExpiresDefault A0 Expi
我对 Cookie 不熟悉,希望让此 Cookie 在我的注销页面上过期 这是我设置 cookie 的位置: setcookie("loggood", "YES", $expire, "/",
MySQL 是否有某种功能可以在 x 秒后使特定行过期? 例如,我必须以下数据库: users id - integer name - string subscriptions
我的机器上安装了 Matlab Compiler Runtime。它工作正常,但现在当我运行一些需要它的代码时,我得到了这个错误: Failed to initialize MCR Instance:
当我从 PayPal 收到 IPN 时,我不想立即处理它,而是将消息排队,然后使用调度程序处理它。 因此,有一点让我担心 - 如果我将一条消息排队并只处理它(包括'_notify-validate'验
关于 PHP session 过期的问题。 如果该用户有一段时间不活动(出于测试目的,5 秒),我需要我的服务器丢弃 session 信息。 我看过this question尤其是 Gumbo(+28
我有一个 session ,在 30 分钟不活动后或 23.4 小时后被销毁。 我遇到的问题是无论事件如何, session 都会在 30 分钟后被销毁。因此,如果用户在 23.4 小时内一直处于事件
我一直在网上搜索并找到了许多奇怪的答案,而且我几乎尝试了所有这些答案。我的问题是这样的。我的登录页面包含: FormsAuthenticationTicket ticket = new FormsAu
我正在构建一个表单,我必须将数据存储在 HTML5 的 sessionStorage 中 我不知道 sessionStorage 何时过期。谁能告诉我 sessionStorage 的过期时间? 最佳
在我的应用程序中,我有一个必须始终有效的访问 token (Spotify 的)。当此访问 token 过期时,应用必须每 60 分钟刷新一次 token 端点并获取另一个访问 token 。 Aut
我们的办公室有一个简单的闭路电视系统,可以显示我们每个安全摄像头的实时图像。闭路电视系统没有 API 或任何提取实时图像的方法。但是,您可以通过创建带有图像链接的基本 HTML 页面从另一个浏览器查看
我正在基于DotNetOpenAuth实现OAuth2授权/资源服务器。我的服务器将发出生命周期很长的访问 token 。这些 token 将在iOS设备上使用。我看到的流程是这样的:1)要求用户在i
请帮助我在 Varnish 配置中添加过期 header 。 max_age 已在 vcl_fetch 中定义,需要根据 max_age 添加 expires header。 最佳答案 通常不需要设置
我正在开发一个必须使用 session 超时的应用程序。 问题是用户经常错过 session 超时并丢失数据。我已经在 javascript 中实现了一个小型 session 管理器,如果浏览器中有一
我有一个应用程序,可以从我的Instagram帐户中提取数据。 我曾经授权过此应用一次,并获得了访问 token 。但是我很担心 如果该 token 过期怎么办?我是否应该在每次 token 到期?
我在数据表中有多个复选框,它们具有一个名称和不同的值,我可以通过以下代码为所有选中的复选框存储 cookie $(document).ready(function(){ $('i
hibernate 3.3.x、ehcache 2.2.x The following error occurs, when I try to publish a lots of users in a
在 Azure 门户的通知中心的“配置”选项卡上,我能够生成主键和辅助键。我了解这些是获得对 Azure API 的编程访问权限所必需的 - 允许我的客户端应用程序创建注册并发送消息。 谁能解释一下:
我是一名优秀的程序员,十分优秀!