AngularJS:注销后如何重定向到登录页面?

时间:2018-07-23 05:46:53

标签: angularjs

按下后退按钮后,如何使用AngularJS重定向到登录页面。

我尝试了以下代码来重定向同一页面。

AuthenticationService.ClearCredentials();
    $state.go('login', null, {reload: true});

1 个答案:

答案 0 :(得分:0)

有很多方法可以做到。首选的方法是使用$routeChangeStart。每当应用将要重定向到其他页面时,这都会检查登录状态。

angular.module('myApp')
     .run(['$rootScope','$location', 'AuthenticationService', function ($rootScope, $location, AuthenticationService) {
        $rootScope.$on('$routeChangeStart', function (event) {

         //Here, you may need to add a function isLoggedIn() to your service which will tell used logged in status

        if (!AuthenticationService.isLoggedIn()) {
          console.log('User not loged in, hence no access of this page');
          event.preventDefault();
          $location.path('/login');
        }
        else {
          console.log('Redirect to page');
        }
  });
}])

只需在服务中添加一个功能,以检查用户是否已登录并且以上版本应该可以工作。希望对您有帮助