快速护照中间件不会受到请求参数的影响

时间:2017-05-28 13:52:34

标签: node.js express jwt passport.js

我正在建立一个带有node,express,jwt和passport的网络服务器。但是当我尝试使用get方法的路线时:

app.get('/api/:key/lights', passport.authenticate("jwt", {session: false}), function(req, res) {
if (yubiAtHome) {
var sKey = req.params.key;
dbController.checkApiKey(sKey, function(err, bData) {
  if (bData.status) {
    hueController.getLights(function(err, jData) {
      if (err) {
        generateResponse(res, 'get Lights', null, err, 'lLights', 500);
      } else {
        generateResponse(res, 'get Lights', jData, null, 'lLights', 200);
      }
    });
  } else {
     generateResponse(res, 'api key not valid', bData, 'apikey invalid', 'lLights', 500);
     }
    });
   } else {
      generateResponse(res, 'yub not pressent', null, 'yub not pressent', 'lLights', 500);
  }
});

但是这条路线由于某种原因不起作用,如果我移除passport.authenticate("jwt", {session: false})或删除它所使用的参数(“:”键),否则它不会并返回401:未经授权。怎么会这样 ?

修改

这是我尝试访问路线的方式: Postman of the route

1 个答案:

答案 0 :(得分:1)

尝试从标题Authorization中删除引号。

我在这里测试,当我加上引号时,它不起作用。

例如:

授权而不是授权'