【发布时间】:2019-12-10 06:01:44
【问题描述】:
我有一个登录页面,它使用以下方式对用户进行身份验证
signInWithEmailAndPassword() 使用 Javascript 客户端 SDK。
如果登录成功,用户将被重定向(连同 idToken)到会员页面。
在服务器端(nodejs 使用 firebase admin SDK),成员页面检查 idToken 的有效性,如果有效,它会从 Firebase 获取用户特定数据并将其显示在网页上。在会员页面上,有很多数据可供查看/编辑/删除等。因此用户可能会在此页面上花费超过一个小时并不是不可想象的。
我的问题是,我找不到检测 idToken 是否已过期的方法。理想情况下,我想刷新并获得一个新的 idToken。那可能吗?如果这不可能,我想在 idToken 过期时将用户重定向到登录页面。
但我无法弄清楚如何实现其中任何一个。当 idToken 过期时,看起来 onAuthStateChanged 和 onIdTokenChanged 不会被触发。而且我无法像firebase.auth().currentUser.getIdToken(true) 那样执行 idToken 的 forceRefresh。因为在会员页面,firebase.auth().currentUser返回null。
关于如何处理这种情况有什么建议吗?
谢谢。
【问题讨论】:
标签: javascript firebase firebase-authentication