2015-11-02 60 views
0

我正在嘗試使用MEAN創建Web應用程序,其中我正嘗試使用它們在註冊期間創建的密碼對用戶進行身份驗證。下面是我signin.html看起來像如何使用restangular認證用戶?

<div ng-controller ="MoviesSignCtrl"> 
    UserName</br> 
    <input type="text" ng-model="movie.username" placeholder="Username"> 
    </br> 
    </br>Password</br> 
    <input type="password" ng-model="movie.password" placeholder="Password"> 
    </br></br> 
    <input type="button" value="Login" ng-click="signFunction()"> 

</div> 

我使用restangular連接我angularjs和節點API

下面是我angularjs控制器

angular.module('clientApp') 
    .controller('MovieEditCtrl', function (
    $scope, 
    $routeParams, 
    Movie, 
    $location 
) { 
    $scope.movie = {}; 
    Movie.one($routeParams.id).get().then(function(movie) { 
     $scope.movie = movie; 
     $scope.signFunction = function() { 
     if($scope.movie.username.then(function() { 
      $location.path('/movie/' + $routeParams.id); 
     }); 
     }; 
    }); 
    }); 

但我知道上面的邏輯是錯誤的,有人可以向我解釋如何檢查用戶是否存在於數據庫中,然後檢查密碼是否與數據庫中的密碼匹配。

回答

0

你的邏輯不清楚。你真正需要做的是發送一個userAuthorization對象到你的後端,它包含一個用戶名和密碼。然後檢查發送的用戶名/密碼是否與數據庫中的內容匹配。如果他們確實匹配,則可以將任何您想要的來自呼叫的電話發回前端,如果它們不匹配,則發送未經授權的錯誤,並在前端的承諾的錯誤部分處理它。因此,發送三件事到後端 - 電影(你的端點),movieId(你的REST獲取調用的標準ID),userAuthorization對象(持有用戶名和密碼的對象)。總的來說,這是一種很普遍的安全方式,但我不會理解,因爲我知道你正在試圖以一種基本的方式來處理它。