我的AngularJS认证服务出了什么问题?

时间:2014-11-26 14:18:06

标签: javascript angularjs twitter-bootstrap authentication

我正在尝试使用angularjs实现登录身份验证。我想实现一个简单的登录服务。在我的Web应用程序中,客户端是AngularJS / Bootstrap,后端由Java和Spring技术组成。 这是它应该如何工作:

1.用户到达主页 2.用户进入登录页面登录(为简单起见,这里我们不关心用户的注册方式) 3.用户提交凭据以登录 3.A-如果登录成功=>重定向到profil页面并打印用户的用户名(这里是电子邮件) 3.B-如果登录失败=>重定向到主页

这是它的工作原理: 当用户提交凭据没有任何反应时,在Chrome控制台中我没有任何错误。 我不明白发生了什么。

所有代码使用都在plunker my code

这是我的控制器和服务: UserController的     joblyApp.controller(“UserController”,函数($ rootScope,$ scope,$ location,$ window,UserService,AuthenticationService){         $ scope.isAuthenticated = function(){             返回UserService.isLogged;         };

    $scope.logout = function(){
  UserService.logout(user).success(function(data) {
                $scope.data = data;
              $location.path('/login');
            })
    };

        //Submit credentials
        $scope.submitCredentials = function(user) {
            UserService.authenticate(user)
            .success(function(data) {
                $scope.data = data;
              $location.path('/profil');
            })
            .error(function(data) {
        $rootScope.error = "Failed to login";
        $location.path('/');
    });
        };
    });

UserProfilController

joblyApp.controller("UserProfilController", function($rootScope,$scope,$location,$window,AuthenticationService) {
    $scope.user = {
        username:AuthenticationService.email,
        lastname:AuthenticationService.lastname
    };
    $scope.user = AuthenticationService.user;

    });

UserService

joblyApp.factory('UserService', function($http,$location,$window,AuthenticationService) {
    return {
        logout : function(user) {
             if(user.username==="test@test.com"){
            user.userbame="";
            user.firstname="";
            AuthenticationService.email="";
            AuthenticationService.firstname="";
            AuthenticationService.isLogged=false;
            return user;
          }
        },

        authenticate : function(user){
          if((user.email==="test@test.com")&&((user.password==="password"))){
            AuthenticationService.email="test@test.com";
            AuthenticationService.firstname="myself";
            AuthenticationService.isLogged=true;

            return user;
          }

        }

    }

});

的AuthenticationService

joblyApp.factory('AuthenticationService', function() {
    var auth = {
        isLogged: false,
        email:'',
        lastname:'',
        firstname:'',
        role:''
    }

    return auth;
});

由于

0 个答案:

没有答案