Angularjs登录身份验证问题

时间:2017-10-16 11:53:52

标签: javascript angularjs

我是使用Angularjs的新手,我正在使用AngularJS通过REST API构建一个登录页面。我正在尝试提交表单时遇到问题。我浏览了很多网站和链接,但我没有得到正确答案。请不要告诉我谷歌它,因为我已经有这么多的蓝色链接。如果你知道任何事情,请纠正我,如果你有任何工作实例分享它。

AngularJS:

var app = angular.module('logapp',['toastr','ngRoute']);    
app.factory('Auth', function($http){
    var service = {};

    service.login = function(username,password) {
    $http.post('http://localhost:3000/loginfo',
    {
        username : username,
        password : password
    })
    .then(
        function successCallback(response){
            console.log(response.data);
        });
    };

    service.isAuthenticated = function() {
        return {
        isAuthenticated : false,
        }
    };

    return service;
    });

app.controller('credientials', function($scope,$http,Auth) {
$scope.isAuthenticated = false;

$scope.userCred = {
username: '',
password: ''
}

/*-----Form Submition-----*/

$scope.log = function(userCred){

Auth.login(userCred, function(result) {
console.log(Auth);
if (result === true) {
    console.log('success');
} else {
    $scope.Error = response.message;
}
});
};  

1 个答案:

答案 0 :(得分:0)

首先,这部分

Auth.login(userCred, function(result) {

错了。您的service.login需要2个参数。它们是用户名和密码。它不需要任何回调。

正确的方法是这样的

Auth.login(userCred.username, userCred.password)
  .then(function(result){
    console.log(result);
  })
  .catch(function(err){
    console.error(err);
  });

不言而喻,您重构service.login如下

service.login = function(username,password) {
  return $http.post('http://localhost:3000/loginfo',{
    username : username,
    password : password
  })
}