Пользователь не может войти в Angular JS с JWT и Node API

0

Я создаю Node api для входа пользователя и использую JNON для проверки подлинности.

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 чего-то не хватает, но я не могу узнать об ошибке.

Может ли кто-нибудь помочь мне найти проблему?

Благодарю.

Теги:
jwt

1 ответ

2

Когда вы отправляете сообщение об ошибке, попробуйте отправить код статуса http в ответ. Просто попробуйте отправить

res.send(400, {success:false, msg:'Auth Failed'});
  • 2
    с экспресс-4 используйте res.status (400) .send ({success: false, msg: 'Auth Failed'});
  • 0
    нет .. это не работает ... все та же проблема, с которой сталкиваются.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню