Firebase 3. 身份验证不持久
Firebase 3. authentication doesn't persist
我正在 angularJS 应用程序中使用 firebase,使用电子邮件和密码身份验证。
我刚刚将我的应用程序从 Firebase 2.x 更新为 3.x,将 AngularFire 从 1.x 更新为 2.x。
我按照这两个文档进行了迁移:
但是现在,每次刷新页面,我都需要重新验证,就像没有持久会话一样。
我检查了 localStorage 密钥 firebase:authUser
我过去有一个 expirationTime
(实际上它是用我登录的时间戳设置的)。
检查用户是否登录我使用:$firebaseAuth().$getAuth()
编辑
这是我的问题的一个工作示例(登录名:toto@mail.fr / 密码:toto123)
https://plnkr.co/edit/463Hse?p=preview
有人知道为什么会这样吗?
我猜您正在直接检查 currentUser,而不是等待初始身份验证状态解析。您需要添加一个观察者:
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
// User is signed in.
} else {
// No user is signed in.
}
});
https://firebase.google.com/docs/auth/web/manage-users
此外,身份验证状态存储在网络存储中,因此请确保您已启用该功能。 (例如,状态不会在 safari 隐私模式浏览中持续存在)。
我正在 angularJS 应用程序中使用 firebase,使用电子邮件和密码身份验证。 我刚刚将我的应用程序从 Firebase 2.x 更新为 3.x,将 AngularFire 从 1.x 更新为 2.x。
我按照这两个文档进行了迁移:
但是现在,每次刷新页面,我都需要重新验证,就像没有持久会话一样。
我检查了 localStorage 密钥 firebase:authUser
我过去有一个 expirationTime
(实际上它是用我登录的时间戳设置的)。
检查用户是否登录我使用:$firebaseAuth().$getAuth()
编辑
这是我的问题的一个工作示例(登录名:toto@mail.fr / 密码:toto123) https://plnkr.co/edit/463Hse?p=preview
有人知道为什么会这样吗?
我猜您正在直接检查 currentUser,而不是等待初始身份验证状态解析。您需要添加一个观察者:
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
// User is signed in.
} else {
// No user is signed in.
}
});
https://firebase.google.com/docs/auth/web/manage-users
此外,身份验证状态存储在网络存储中,因此请确保您已启用该功能。 (例如,状态不会在 safari 隐私模式浏览中持续存在)。