Ответ 1
Лучший способ сделать это - настроить прослушиватель '$ routeChangeStart', который проверяет функцию сервиса authProvider, чтобы проверить, что вошел пользователь. В нашем "app.js" или в отдельном файле:
angular.module('myApp')
.run(['$rootScope', '$location', 'authProvider', function ($rootScope, $location, authProvider) {
$rootScope.$on('$routeChangeStart', function (event) {
if (!authProvider.isLoggedIn()) {
console.log('DENY : Redirecting to Login');
event.preventDefault();
$location.path('/login');
}
else {
console.log('ALLOW');
}
});
}])
Затем для нашей службы authProvider:
angular.module('myApp')
.factory('authProvider', function() {
var user;
return {
setUser : function(aUser){
user = aUser;
},
isLoggedIn : function(){
return(user)? user : false;
}
};
});
Это решение было создано из ответа здесь на переполнение стека.
Спасибо @MohammadAwwaad