我正在尝试使用MEAN创建Web应用程序,我正在尝试使用他们在注册期间创建的密码对用户进行身份验证。以下是我的signin.html的样子
<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和node 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 :(得分:0)
你的逻辑不清楚。您实际需要做的是将userAuthorization对象发送到您的后端,其中包含用户名和密码。然后,检查发送的用户名/密码是否与db中的内容匹配。如果它们匹配,则将您想要的任何内容从呼叫发送回前端,如果它们不匹配,则发回未经授权的错误并在前端的承诺的错误部分处理它。
因此,向后端发送三件事 - 电影(您的端点),movieId(您获取REST调用的标准ID),userAuthorization对象(持有用户名和密码的对象)。
总的来说,这通常是一种很难做到安全的方法,但我不会深入研究,因为我知道你正试图以一种基本的方式处理它。