我使用$ firebaseSimpleLogin使用电子邮件/密码登录Firebase。
当我使用电子邮件/密码登录时工作得相当好,我可以看到sessionkey会自动保存为cookie。
但是,想要记住登录,这样用户只需登录一次。 所以我在auth期间加入了{rememberMe:true}。
如何在正在加载的页面开头检查会话是否仍处于活动状态?
答案 0 :(得分:6)
根据您的问题,我假设您正在使用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');
}
});
});