AngularJS Rest调用以验证用户身份

时间:2014-02-21 22:05:59

标签: angularjs rest

我正在尝试编写一项服务,以便在登录时对用户进行身份验证:

//Authentication Service
app.factory("AuthenticationService", function($location, $http) {
  return {     
    login: function(credentials) {

    $http('api/auth/:username/:password',{'username': credentials.username, 'password' : credentials.password})
        .success(function(data,status,headers,config){
            if(data.success=="1"){
                //succefull login
                credentials.isLogged = true;
                credentials.username = data.username;
                return true;
            }
            else{
                credentials.isLogged = false;
                credentials.username = '';
                credentials.errormessage = "Login Failed! Try again...";
                return false;
            }
        })
        .error(function(data,status,headers,config){
            credentials.isLogged = false;
            credentials.username = '';        
            credentials.errormessage = "Login Error. Missing Service";
            return false;
        });

    },

    logout: function() {
      $location.path('/logout');
    },

    checkAuth: function(){
        if (credentials.isLogged) {
            return true;
        } else {
            $location.path('/admin/login');
        }
    }

  };
});

在后端我有一个响应的PHP api:

[{'success':'0'}]

但是我无法从Angular中适当地进行调用,因为它始终返回“登录错误”消息。

有人可以查看此代码并告诉我我做错了什么吗? (我想很多事情)。非常感谢

修改

我改变了PHP以返回: {'成功':'0'} (或相应的1) 我也试过

$http.post(...)

但是我得到了404.网址肯定是正确的,我必须做错其他的事情......

2 个答案:

答案 0 :(得分:1)

尝试{'成功':'0'}, 我的意思是你不能将数组作为根对象返回。

答案 1 :(得分:0)

尝试引用包含对象的数组的索引:

if (data[0].success=="1")