从Simple Web Login文档中,它声称您可以通过执行以下操作恢复会话:
var auth = new FirebaseSimpleLogin(chatRef, function(error, user) {
...
});
AngularFire有等价物吗?
$firebaseSimpleLogin
构造函数将firebase引用作为其唯一参数..
具体来说,我要做的是匿名登录并在整页刷新时恢复登录。这是可以实现的吗?
答案 0 :(得分:4)
您的身份验证会话是否保留取决于您传递给login方法的参数。无论您使用FirebaseSimpleLogin还是$ firebaseSimpleLogin都与此无关。
var auth = $firebaseSimpleLogin(ref);
$rootScope.$on('$firebaseSimpleLogin:login', function(user) {
console.log('logged in', user.uid);
});
// automagically logs in the next time you call $firebaseSimpleLogin() after page refresh
auth.$login('anonymous', { rememberMe: true });
// does not automagically log in
auth.$login('anonymous');
更新从Angular 1.x和Firebase 2.x开始,此语法和行为已发生变化。
来自Firebase文档中的remember
属性:
如果未指定 - 或设置为
default
- 会话将保持为 只要您在登录和配置中配置您应用的Auth选项卡 仪表板。要将持久性限制为当前窗口的生命周期, 将其设置为sessionOnly
。值none
将不会持续存在 完全认证数据,并将尽快结束认证 页面已关闭。
var auth = $firebaseAuth(ref);
$firebaseAuth.$onAuth(function(user) {
console.log('logged ' + (user? 'in' : 'out'), user && user.uid);
});
// stays logged in for length specified in the app dashboard
auth.$authAnonymously();
// stays logged in until the browser closes
auth.$authAnonymously({ remember: 'sessionOnly' });
// does not stay logged in on page refresh
auth.$authAnonymously({ remember: 'none' });