Angular - маршрут перенаправления выхода
Я пытаюсь создать маршрут, который очищает сеанс пользователей и перенаправляет их обратно на домашнюю страницу корня.
.config(function config( $routeProvider, $stateProvider ) {
$routeProvider.
when('/logout', {resolve: {redirect: function(Session){
Session.clear();
return "/home";
}}});
Я, очевидно, делаю что-то неправильно здесь, называя
$location.path("/logout");
... игнорирует функцию и перенаправляет обратно на маршрут по умолчанию. Я попытался добавить в консоль инструкции console.log, чтобы увидеть, вызвана ли она.
Я неправильно использую функцию перенаправления?
Ответы
Ответ 1
Рассматривали ли вы вопрос о логике выхода в отдельный контроллер? Будет немного более чистым, более надежным и сделать перенаправление более простым. Например:
function LogoutController($location) {
Session.clear();
$location.path('/home');
}
Ваш маршрут:
when('/logout', {
template: '', //A template or templateUrl is required by AngularJS, even if your controller always redirects.
controller: 'LogoutController'
}).
Ответ 2
У меня была такая же проблема, и вместо этого я создал функцию выхода из системы в моем навигационном контроллере, который попадает при щелчке по URL-адресу.
<li><a href="" ng-click="logout()" target="_self">Log Out</a></li>
И в моем навигационном контроллере:
$scope.logout = function () {
localStorage.clearAll();
window.location = '/logout';
};
Я запускаю ASP.NET за Angular, поэтому мне нужен браузер (а не angular) для маршрутизации/выхода из системы, который отображается в конфигурации ASP.NET(выполняет ли еще несколько сеансов очистки и перенаправляет на аутентификацию приложение)
Надеюсь, что это поможет
Ответ 3
просто сохраните $sessionStorage (имя пользователя), затем удалите $sessionStorage (имя пользователя)..
$scope.logout = function(){
delete $sessionStorage.sessname; //sessname is get sessionStorage username
$location.path('/login');
};
помогите мне по этой ссылке: https://stackoverflow.com/info/36056745/angularjs-click-logout-button-to-clear-sessionstorage-again-and-again-go-back-to