AngularJS登录模块

时间:2016-01-06 06:48:24

标签: angularjs

我是angularjs的新手并开始为我的作业实施登录/注销。

我现在正在做的是 -

$rootScope.$on('$stateChangeStart', function (event, toState, toParams,fromState) {
      var token = SessionService.get('token')
       LoginService.isLoggedIn({token:token}).$promise.then(function(response){
         if(!response.error){
         var isLoggedInOnServer = response.object
         var requireLogin = toState.data.requireLogin
         if(!isLoggedInOnServer && requireLogin){
           console.log("1....")
           event.preventDefault()
           $state.go('user.signin');
         }
         console.log(toState.data.title,['signin','signup','forget'].indexOf(toState.data.title),isLoggedInOnServer,requireLogin)
         if(isLoggedInOnServer && !requireLogin && ['signin','signup','forget'].indexOf(toState.data.title) > -1){
           console.log("2....")
           $state.go('app.dashboard')
         }
       }else{
         console.log("3....")
         event.preventDefault();
         $state.go('user.signin')
       }
      })

这个问题是当我点击一个安全的页面时,它首先到达并显示该页面闪烁然后返回登录页面如果我没有登录。

如果我没有登录,则应立即将我重定向到登录页面而不是该安全页面。

像Spring中的Spring-security一样,任何机构都可以告诉我强大的登录机制或者我可以实现的逻辑吗?

1 个答案:

答案 0 :(得分:1)

我也正在使用重定向登录..这对我来说很好。

当我登录时,令牌存储在cookie和变量上以呈现我的菜单栏。

如果我的cookie为空,我的渲染也会重定向到index.html(我的登录名)

var miApp = angular.module('Natura', ['ngRoute', 'ngTable', 'ngCookies'])
    .run(function ($rootScope, $location, $cookies, $window, loginService) {
        $rootScope.render = $cookies.get('render');            
        $rootScope.$on('$routeChangeStart', function () {
            if ($window.location.pathname !== "/NaturaWEB/index.html") {
                if ($rootScope.render !== "true") {
                    $window.location.href = 'index.html#/';
                }
            }
        });
    });

使用$window.location.pathname我可以控制正在尝试访问的网址。

抱歉,如果这很糟糕。