Проблема в том, что я хотел бы ограничить доступ к определенным маршрутам и показать страницу входа, если у пользователя нет действительного JWT. Я просто хочу сказать, что я очень новичок в AngularJs и NodeJs. Так короче у меня естьАутентификация маршрута AngularJs
LoginCtrl:
$scope.login = function(username, password){
UserSvc.login(username, password)
.then(function(response){
$scope.$emit('login', response.data);
$window.location.href = '#/';
}, function(resp){
$scope.loginError = resp.data.errors;
});
}
встаю событие, в ApplicationCtrl событие пойманной этим
$scope.$on('login', function(_, user){
$scope.currentUser = user
})
это круто, и это работает идеально, проблема заключается в том, что У меня есть несколько маршрутов в моем route.js, на котором я хотел бы получить некоторую проверку.
$routeProvider
.when('/', {controller:'PostsCtrl', templateUrl: 'posts.html'})
.when('/register', {controller:'RegisterCtrl', templateUrl: 'register.html'})
.when('/login', {controller:'LoginCtrl', templateUrl: 'login.html'})
.otherwise({redirectTo: '/login'});
В nodejs Я могу легко установить промежуточное программное обеспечение, но как я могу это сделать в AngularJs. Так что теперь происходит то, что когда я приземляюсь на странице, я могу нажать логин. Он перенаправляет меня на страницу входа в систему, а затем, когда я нажимаю «Сообщения», Nodejs возвращает 401, потому что у меня нет допустимого JWT, но это отображается только в консоли. AngulrJs ничего не делает.
Ответ вы ищете перехватчики. Проверьте этот модуль на угловой. https://github.com/witoldsz/angular-http-auth он ловит ошибку 401 с сервера и дает вам возможность делать smt с ней. – SayusiAndo