在登录之前限制对视图的访问

时间:2014-09-01 16:31:35

标签: json angularjs ionic-framework

我想知道如何限制访问任何和所有视图(登录/注册除外)视图,直到有问题的用户登录。

然后我会使用$ http.post将表单内容发布到我的后端,如果用户登录时没有问题,请重定向到短划线视图。

2 个答案:

答案 0 :(得分:2)

我建议使用$stateChangeStart事件来监听视图的更改,并检查用户是否已登录。由于Ionic使用ui-router而不是Angular的默认$route,因此您需要使用ui-router的API。

https://angular-ui.github.io/ui-router/site/#/api/ui.router.state。$状态

$rootScope.$on('$stateChangeStart',
function(event, toState, toParams, fromState, fromParams){
    event.preventDefault();

    // Check if user is logged in here, if not redirect state
    if (!User.valid) {
      $state.go('home.login');
    }
});

使用声明状态的解析功能需要您为要保护的任何路由添加解析。使用事件监听器可以在一个地方处理它。

答案 1 :(得分:0)

如果未记录,您可以解决重定向问题

         config(['$routeProvider', function ($routeProvider) {

          $routeProvider
           .when('/restricted',{
            'templateUrl': //some template url,
            //Etc...
            //then ...
            'resolve': {
             'onEnter': function (redirectService, authService) {

               if (!!!authService.isLogged()) {

                redirectService.redirectNotlogged();
               }
             } 
            }
           });

        }]);