如果用户使用AngularJS登录,如何重定向到仪表板?

时间:2015-01-08 05:28:29

标签: javascript angularjs

我是AngularJS的新手。如果用户登录,我想将我的页面重定向到仪表板。登录后,我将获得访问令牌,我将其保存在cookie中。我检查了Stack Overflow的解决方案,然后我的问题也没有解决。

这是我的代码:

app.js

(function(window){

var app= angular.module('customersApp',['ngRoute','ngCookies','ui.bootstrap']);

app.config(['$routeProvider',
  function ($routeProvider) {
        $routeProvider.
        when('/login', {
            title: 'Login',
            controller: 'loginController',
               templateUrl: 'app/views/loginuser.html'
        })
            .when('/logout', {
                title: 'Logout',
                templateUrl: 'partials/login.html',
                controller: 'loginController'
            })

            .when('/dashboard', {
                title: 'Dashboard',
                templateUrl: 'app/views/dynamic_table.html',
                controller: 'dashboard'
            })
            .when('/verified_artists', {
                title: 'Verified Artists',
                templateUrl: 'app/views/verified_artists.html',
                controller: 'artistController'
            })
            .when('/new_artists', {
                title: 'New Request Artists',
                templateUrl: 'app/views/new_artists.html',
                controller: 'artistController'
            })

            .otherwise({
                redirectTo: '/login'
            });
  }]);
   window.app = app;

}(window));

loginController.js

app.controller('loginController', function ($scope,$http,$cookies,$cookieStore) {


    //initially set those objects to null to avoid undefined error
    $scope.login = {};
    $scope.signup = {};
    $scope.doLogin = function (customer) {


  $.post("websiteurl.com/admin_login",
  {

     user_email : $scope.login.email,
      password : $scope.login.password

  },


  function(data,status){

      data = JSON.parse(data);
      console.log(data);

    var someSessionObj = { 'accesstoken' : data.access_token};

    $cookies.dotobject = someSessionObj;
    $scope.usingCookies = { 'cookies.dotobject' : $cookies.dotobject, "cookieStore.get" : $cookieStore.get('dotobject') };

    $cookieStore.put('obj', someSessionObj);
    $scope.usingCookieStore = { "cookieStore.get" : $cookieStore.get('obj'), 'cookies.dotobject' : $cookies.obj, };

    console.log($cookieStore.get('obj').accesstoken);

     if(data.flag==10)
      {
          alert(data.error);
      }
      else
      {
         window.location.href = "#/dashboard";

      }


  })


    };


}); 

1 个答案:

答案 0 :(得分:0)

尝试查找路线更改事件并使用Cookie存储区检查Cookie ...



$rootScope.$on( "$routeChangeStart", function(event, next, current) {
  // check for the cookie 
  // if present 
    // check next route
        // if its login/signup page
        // event.preventDefault(); (don't make the route change, redirect to dashboard)
        // $location.path("/dashboard");
        
        // if it is some other route
        // allow it.
  
  // if cookie not present
  // $location.path("/login");
});