如何将基于令牌的节点api用于角度js

时间:2016-12-01 04:37:23

标签: angularjs node.js token

我在登录时使用node.js创建令牌:

apiRoutes.put('/login', function(req, res, next){
  User.findOne({email:req.body.email}, function(err, user){
    bcrypt.compare(req.body.password, user.password, function(err, result){
       if(result){
        var token=jwt.encode(user,config.secret); 
        return res.json({success: true, token:'JWT' +token});         
      }else{
        return res.json("Incorrect Email and Password")
      }
    })
  })
});

现在我正在尝试使用/dashboard路线显示用户信息中心页面,我正在执行以下操作:

apiRoutes.get('/dashboard',function(req, res) {
  var token=getToken(req.headers); 
  if(token){
    var decode=jwt.decode(token, config.secret); 
    console.log(decode);
    User.findOne({name:decode.name}, function(err, user){
      if(err){res.json(err)}
        if(!user){
          return res.status(403).send({success:false, msg:'Authentication Failed'})
        }else{
          res.json({success:true, msg:'Welcome in the Area  ' +user.name+'!' })
        }
    })
  }else{
    return res.status(403).send({success:false, msg:'No Token Found'})
  } 
  });

 getToken = function (head) {
  if (head && head.authorization) { 
    var parted = head.authorization.split(' '); 
    if (parted.length == 2) {  
      return parted[1];
    } else {
      return null;
    }
  } else {
    return null;
  }
}; 

postman当我点击/dashboard api时它的工作状态。并打印输出success:true, msg:'Welcome in the Area Admin; 但是当在角度js中我使用这个api时,节点控制台中的输出是null。 下面是我消耗api的角度函数

 app.controller('dashboardCtrl', function($scope, $http, $location, $routeParams){ 
        $http.get('/api/dashboard').success(function(res){
            $scope.result=res;  
        })
    })

我想知道如何在角度中使用基于令牌的路线。我知道上面给出的角度函数是不对的。请让我知道正确的代码。

由于

1 个答案:

答案 0 :(得分:1)

您没有设置Arrow command found where expression was expected的标头。这是你应该怎么做:

$http.get()