Node.js Can';当我在我的私人路线中使用中间件时,我不会在邮递员那里得到令牌
我现在能够成功地将授权标头设置为我的Node.js Can';当我在我的私人路线中使用中间件时,我不会在邮递员那里得到令牌,node.js,header,authorization,token,postman,Node.js,Header,Authorization,Token,Postman,我现在能够成功地将授权标头设置为我的/login路由器中的令牌。然而,每当我测试我的私人路线时,我很难让邮递员将令牌设置为标头 下面是我运行登录路由器的时间。它成功地将标头设置为生成的用户令牌 尽管使用我从另一个登录路径获得的令牌填写了头密钥表单,但Postman在发送请求后没有正确运行代码,因为Postman没有令牌 在下半部分可以看到Postman中缺少标记,在这里我的自定义标题“x-auth”和标记值都看不到 以下是相关代码供参考: 我正在使用的中间件: exports.verify
/login
路由器中的令牌。然而,每当我测试我的私人路线时,我很难让邮递员将令牌设置为标头
下面是我运行登录路由器的时间。它成功地将标头设置为生成的用户令牌
尽管使用我从另一个登录路径获得的令牌填写了头密钥表单,但Postman在发送请求后没有正确运行代码,因为Postman没有令牌
在下半部分可以看到Postman中缺少标记,在这里我的自定义标题“x-auth”和标记值都看不到
以下是相关代码供参考:
我正在使用的中间件:
exports.verifyOrdinaryUser = function (req, res, next) {
// check header or url parameters or post parameters for token
let token = req.header('x-auth');
// decode token
if (token) {
// verifies secret and checks exp
jwt.verify(token, config.secretKey, function (req, res, next) {
if (err) {
let err = new Error('You are not authenticated!');
err.status = 401;
return next(err);
} else {
// if everything is good, save to request for use in other routes
req.user = user;
req.token = token;
next();
}
});
} else {
// if there is no token
// return an error
let err = new Error('No token provided!');
err.status = 403;
return next(err);
}
};
这是路由器:
router.post('/addrecipe', authentication.verifyOrdinaryUser, (req, res) => {
Recipe.create({
name: req.body.name,
description: req.body.description,
steps: req.body.steps,
ingredients: req.body.ingredients,
category: req.body.category,
postedBy: req.user.id,
postersCreationDate: req.user.creationDate,
postersName: req.user.username
}, (err, recipe) => {
if (err) console.log(err);
res.json(recipe);
});
});
要在邮递员中设置身份验证令牌,请转到
Authorization
选项卡,然后选择OAuth 2.0
asType
。您可以在那里找到一个按钮来获取新令牌,您可以在其中输入凭据以接收令牌,您可以为以后的请求设置令牌
在标题中设置内容类型
而不是内容类型:应用程序/json