无论凭据如何,http呼叫总是成功

时间:2016-08-31 10:40:04

标签: angularjs authentication

我使用deployd来模拟http请求。我想用我的数据库凭据进行身份验证。

这是我的控制器代码

.controller("authCtrl", function($scope, $http, $location, authUrl) {


$scope.authenticate = function (user, pass) {
    $http.post(authUrl, {
        username: user,
        password: pass
    }).success(function (data) {
        console.log(data);
        $location.path("main");
    }).error(function (error) {
        console.log("error");
        $scope.authenticationError = error;
    });
}

})

输入一个凭据错误后,我收到以下消息。

Object { message: "bad credentials", status: 401 }

我正确输入两个凭据后收到以下消息。

Object { path: "/users", id: "11a58ccdcc31c9b863b7a5e63d9d672fdae…", uid: "e2ad770f0847f8ac" }

我的问题不是得到"错误"登录。只有成功事件被解雇。输入凭证错误或正确不会改变情况。

1 个答案:

答案 0 :(得分:0)

尝试捕获error.status = 401,例如https://github.com/moorthi07/MarsCMS/

 $scope.login = function () {
            $scope.newUser.$login().then(function (success) {
                $rootScope.$broadcast('user:login');
                $state.go('dashboard.intro'); 
            }, function (err) {
                if (err.status == 401) {

    //                $mdToast.show(
    //                    $mdToast.simple()
    //                    .content('Username or password invalid!')
    //                    .position('right bottom')
    //                );
                } else {

    //                $mdToast.show(
    //                    $mdToast.simple()
    //                    .content('An error occured. Please check log.')
    //                    .position('right bottom')
    //                );
                    console.log(err);
                };


            });
        };