我正在使用angularJS应用程序中的firebase,使用电子邮件和密码身份验证。我只是将我的应用程序从Firebase 2.x更新到3.x,AngularFire从1.x更新到2.x。
我跟踪了这两个文档来完成迁移:
但是现在,每次刷新页面时,我都需要重新进行身份验证,就像没有持久会话一样。
我曾经检查过localStorage键firebase:authUser,我在过去有一个expirationTime (实际上它是用我登录的时间戳设置的)。
要检查用户是否是loggedin,我使用:$firebaseAuth().$getAuth()
编辑
下面是我的问题的一个工作示例(登录: toto@mail.fr /密码: toto123) https://plnkr.co/edit/463Hse?p=preview
有人知道为什么会有这种行为吗?
发布于 2016-08-12 00:23:19
我猜您正在直接检查currentUser,而不需要等待初始的auth状态来解决。您需要添加一个观察者:
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
另外,auth状态存储在web存储中,因此请确保启用了该状态。(例如,状态不会在safari私有模式浏览中持久存在)。
https://stackoverflow.com/questions/38879528
复制相似问题