【发布时间】:2023-03-20 04:16:02
【问题描述】:
我尝试设置令牌然后从标头获取令牌,但是当我 console.log(req.headers['authorization']) 时它总是显示“未定义”
这是一些代码
const express = require('express');
const app = express();
const jwt = require('jsonwebtoken');
const accessTokenSecret = 'youraccesstokensecret';
app.listen(8080, () => {
console.log('Authentication service started on port 8080');
});
我设置了令牌
app.get("/createJWT",function(req,res){
const accessToken = jwt.sign({ username: "myName"}, accessTokenSecret);
res.json({
accessToken
});
})
中间件(我显示 req.headers['authorization'] 未定义)
const authenticateJWT = (req, res, next) => {
const authHeader = req.headers['authorization'];
console.log(authHeader)
if (authHeader) {
const token = authHeader.split(' ')[1];
jwt.verify(token, accessTokenSecret, (err, user) => {
if (err) {
return res.sendStatus(403);
}
req.user = user;
next();
});
} else {
res.sendStatus(401);
}
};
最后,我访问一个路由进行测试,req.headers['authorization'] 没有值。
app.get("/check",authenticateJWT,function(req, res){
res.send("ok")
})
请帮帮我,谢谢
【问题讨论】:
-
找到解决方案了吗?