0
ユーザーログインのためのノードapiを作成しており、認証にJSON Webトークンを使用しています。ユーザーはJWTとノードAPIを使用してAngular jsでログインできません
apiRoutes.put('/login', function(req, res){
User.findOne({name:req.body.name}, function(err, user){
if(err){throw err;}
else{
if(!user){
res.send({success:false, msg:'Auth Failed'});
}else{
user.comparePassword(req.body.password, function(err, isMatch){
if(isMatch && !err){
var token=jwt.encode(user, config.secret);
res.json({success:true, token:'JWT' +token});
}else{
res.send({success:false, msg:'Auth Fails:wrong password'});
}
});
}
}
});
});
ログインコントローラ
app.controller('loginCtrl', function($http, $scope, $location, $cookieStore){
$scope.login=function(){
console.log($scope.loginUser);
$http.put('/api/login', $scope.loginUser).then(function(response){
console.log(response.data.token);
$cookieStore.put('token',response.data.token);
$scope.currentUser=$scope.loginUser.name;
alert("Successfully Loggedin");
}, function(err){
alert('Bad Login Credentials');
});
};
});
ログインフォームのHTML
<div class="post" ng-controller="loginCtrl">
<form method="post">
<div class="form-group" >
<label>Name</label>
<input type="text" class="form-control" name="name" ng-model="loginUser.name" />
</div>
<div class="form-group">
<label>Password</label>
<input type="password" class="form-control" name="password" ng-model="loginUser.password"/>
</div>
<div class="form-group">
<button class="btn btn-success" ng-click="login()" >Login</button>
</div>
</form>
</div>
問題は、私は、ユーザーの資格情報を使用してログインボタンをクリックしたときに、それは常にある、ということですユーザーの資格情報が正しいか間違っていても、alert("successfully logged in");
を返します。私はAngular Loginのコントローラに何かがないと思うが、私はエラーを見つけることができない。
問題を見つけるのに手伝ってくれる人がいますか?
ありがとうございました。
速達4用res.status(400).send({success:false、msg: 'Auth Failed'}); – Gatsbill
いいえ..その動作していない...まだ同じ問題に直面しています。 –
ユーザ 'name'と' password'が両方とも間違っている場合は、正しい警告メッセージを表示します。しかし、 'user'と' password'がマッチしなかった場合、常に 'alert(" successfully loggedin ")を返します。 –