Мне сложно работать с requireAuth. Я пробовал как ngroute, так и uirouter, и если пользователь не заходит в систему, я просто хочу перенаправить его обратно на домашнюю страницу.Firebase requireAuth не работает
В моем приложении у меня есть 1 страница с несколькими контроллерами, где я хочу установить вышеуказанное правило.
Это завод и запустить метод:
app.factory("AuthFactory", ["$firebaseAuth", function($firebaseAuth) {
var ref = new Firebase("https://torrid-heat-237.firebaseio.com");
return $firebaseAuth(ref);
}
]);
// for ui-router
app.run(["$rootScope", "$state", function($rootScope, $state) {
$rootScope.$on("$stateChangeError", function(event, toState, toParams, fromState, fromParams, error) {
// We can catch the error thrown when the $requireAuth promise is rejected
// and redirect the user back to the home page
if (error === "AUTH_REQUIRED") {
$state.go("/");
}
});
}]);
, я написал .state метод:
app.config(["$stateProvider", function ($stateProvider) {
$stateProvider
.state('geniuses', {
url: '/geniuses',
abstract: true,
controller: 'GetAllGeniuses',
templateUrl: "views/listAllgeniuses",
resolve: {
"currentAuth": ["AuthFactory", function(AuthFactory) {
return AuthFactory.$requireAuth();
}]
}
}).state('geniuses', {
url: '/geniuses',
abstract: true,
controller: 'SearchAGenius',
templateUrl: "views/listAllgeniuses",
resolve: {
"currentAuth": ["AuthFactory", function(AuthFactory) {
return AuthFactory.$requireAuth();
}]
}
})
}]);
И, наконец, в обоих контроллерах, я жду AuthFactory .requireAuth для решения. Но, что происходит, когда я ударяю URL-адрес без регистрации, он остается там сам, и даже когда я вхожу в систему, он отображает одну и ту же страницу.
Что именно я сделал неправильно здесь ?