Javascript 如何在app.js中检查angularfire身份验证状态
我遵循angularfire教程来验证用户。 用户可以在应用程序中注册、登录甚至注销 当我尝试使用解析来检查某些路由(ui路由)的$requireSignIn()时,它不起作用 另外,我想在加载模块的app.js中检查用户身份验证状态($onAuthStateChanged())。然后,如果身份验证发生更改,请更新身份验证服务(userAuth)。我正在使用ng show=“authData”/ng hide=“authData”更改已登录元素的html。但有时即使在登录后,这些元素中的一些仍显示为未登录。我认为这与身份验证更新状态有关 如果用户已登录并尝试访问登录/注册页面,请将其发送回主页 这是我的app.jsJavascript 如何在app.js中检查angularfire身份验证状态,javascript,angularjs,firebase,angularfire,Javascript,Angularjs,Firebase,Angularfire,我遵循angularfire教程来验证用户。 用户可以在应用程序中注册、登录甚至注销 当我尝试使用解析来检查某些路由(ui路由)的$requireSignIn()时,它不起作用 另外,我想在加载模块的app.js中检查用户身份验证状态($onAuthStateChanged())。然后,如果身份验证发生更改,请更新身份验证服务(userAuth)。我正在使用ng show=“authData”/ng hide=“authData”更改已登录元素的html。但有时即使在登录后,这些元素中的一些仍显
angular
.module('myApp', [
'ngAnimate',
'ngAria',
'ngCookies',
'ngResource',
'ui.router',
'ngMeta',
'firebase'
])
.run(["$rootScope", "$state", function($rootScope, $state) {
$rootScope.$on("$stateChangeError", function(event, toState, toParams, fromState, fromParams, error) {
if (error === "AUTH_REQUIRED") {
$state.go("home");
}
});
}])
.config(['$stateProvider', '$urlRouterProvider', '$locationProvider',
function( $stateProvider, $urlRouterProvider, $locationProvider, ngMetaProvider, $location, userAuth) {
$urlRouterProvider.otherwise('/');
$stateProvider
.state('/', {
url: '/',
templateUrl: 'views/main.html',
controller: 'MainCtrl',
meta: {
'title': 'Goaf | Your next great destination',
'description': 'This is the description shown in Google search results'
}
})
.state('home', {
url: '/home',
templateUrl: 'views/home.html',
controller: 'HomeCtrl',
meta: {
'title': 'Goaf | Your next great destination',
'description': 'This is the description shown in Google search results'
},
resolve: {
"currentAuth": ["userAuth", function(userAuth) {
return userAuth.$requireSignIn();
}]
}
})
}]);
以下是主页的控制器,我只希望登录用户:
angular.module('myApp')
.controller('HomeCtrl', ["currentAuth", function ($rootScope, $scope, $http, $interval, $location, userAuth, dataservice, currentAuth) {
$scope.authData = userAuth.isLoggedIn();
}]);
这是我的userAuth服务文件:
angular.module('myApp')
.service('userAuth', ["$firebaseAuth", function($firebaseAuth) {
var firebaseAuthObject = $firebaseAuth();
this.login = function(loginEmail, loginPassword){
return firebaseAuthObject.$signInWithEmailAndPassword(loginEmail, loginPassword);
};
this.isLoggedIn = function(){
return firebaseAuthObject.$getAuth();
};
this.signOutUser = function() {
firebaseAuthObject.$signOut();
console.log('logging out user!');
};
}
]);