$ firebaseSimpleLogin和会话无需重新登录

jho*_*jho 2 firebase firebase-security angularfire

我使用$ firebaseSimpleLogin使用电子邮件/密码登录Firebase.

当我使用电子邮件/密码登录时,它工作得很好,我可以看到sessionkey被自动保存为cookie.

但是,想要记住登录,这样用户只需登录一次.所以我在auth期间加入了{rememberMe:true}.

如何在加载页面的开头检查会话是否仍处于活动状态?

Dam*_* Aw 6

从你的问题,我假设你正在使用Angular JS.

您可以run在主模块上执行一个块,每次加载页面时都会运行该块.我对Angularfire了解不多,这是我在hack day项目中使用的代码,用于检查auth并在需要时重定向到登录页面.

FirebaseRef 是一个指向我的Firebase实例的包装器.

这也确保了currentUser对象在所有范围内都可用.

var minib = angular.module('minib', ['ngRoute', 'firebase']);

minib.run(function($rootScope, $location, $firebaseSimpleLogin, firebaseRef) {
  $rootScope.auth = $firebaseSimpleLogin(firebaseRef());
  $rootScope.auth.$getCurrentUser().then(function(user) {
    if (user) {
      $rootScope.currentUser = user;
    } else {
      $location.path('/login');
    }
  });
});
Run Code Online (Sandbox Code Playgroud)