【问题标题】:AngularFire: Resuming an anonymous sessionAngularFire:恢复匿名会话
【发布时间】:2014-04-01 00:49:49
【问题描述】:

Simple Web Login 文档中,它声称您可以通过执行以下操作来恢复会话:

var auth = new FirebaseSimpleLogin(chatRef, function(error, user) {
  ...
});

是否有 AngularFire 的等价物?

$firebaseSimpleLogin 构造函数将 firebase 引用作为其唯一参数..

具体来说,我要做的是匿名登录一次,然后在整个页面刷新时恢复登录。这可以实现吗?

【问题讨论】:

    标签: javascript angularjs firebase angularfire firebase-security


    【解决方案1】:

    您的身份验证会话是否保留取决于您传递给登录方法的参数。无论您使用 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 - 会话将持续为 只要您在 App 的 Login & Auth 选项卡中进行了配置 仪表盘。要将持久性限制在当前窗口的生命周期内, 将此设置为sessionOnlynone 的值不会持续存在 验证数据,并且将在验证结束后立即结束验证 页面已关闭。

    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' });
    

    【讨论】:

      猜你喜欢
      • 2015-05-31
      • 1970-01-01
      • 1970-01-01
      • 2017-06-13
      • 2020-05-21
      • 1970-01-01
      • 2023-04-02
      • 2015-12-04
      • 1970-01-01
      相关资源
      最近更新 更多