2017-10-16 146 views
0

我是使用Angularjs的新人,我正在通過REST API使用AngularJS構建登錄頁面。當我嘗試提交表單時,我遇到了一個問題。我瀏覽了很多網站和鏈接,但我沒有得到正確的答案。請不要告訴我谷歌它,因爲我已經有這麼多的藍色鏈接。如果你知道任何事情,請糾正我,如果你有任何工作示例共享它。Angularjs登錄身份驗證問題

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; 
} 
}); 
}; 
+0

你得到什麼錯誤? – Lotus91

+0

我越來越** Auth.login **未定義,在我的工廠,服務器不匹配用戶輸入數據 – SRK

回答

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 
    }) 
} 
+0

我在我的服務器上實現您的代碼,但我Auth.login是undefined – SRK

+0

我的服務器只是發佈它的數據到我的json文件,當用戶給任何隨機輸入時,它不匹配內容 – SRK