我使用$firebaseSimpleLogin使用电子邮件/密码登录Firebase。
当我使用电子邮件/密码登录时,它运行得相当好,我可以看到sessionkey被自动保存为cookie。
但是,我希望记住登录,这样用户只需要登录一次。所以我在auth中包含了{rememberMe:true}。
如何在加载页面开始时检查会话是否仍然有效?
根据您的问题,我假设您使用的是Angular JS。
您可以在主模块上执行run
块,每次加载页面时都会运行该块。我对Angularfire了解不多,这是我在黑客日项目中使用的代码,用于检查身份验证,并在需要时重定向到登录页面。
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');
}
});
});