中未定义"/>
req.headers['authorization'] 在 Nodejs JWT(JSON WEB TOKEN) 中未定义
这是 JWT 的代码:
const express = require("express");
const jwt = require("jsonwebtoken");
const app = express();
app.use(express.json());
const user = [
{
name: "Rohan",
id: 1,
},
{
name: "Sophie",
id: 2,
},
{
name: "Charlie",
id: 3,
},
];
app.get("/", (req, res) => {
res.send("Welcome to Homepage");
});
app.get("/id", verifyToken, (req, res) => {
res.json(user.filter((id) => user.name === req.user.name));
});
function verifyToken(req, res, next) {
const authHeader = req.headers['authorization'];
const token = authHeader && authHeader.split(" ")[1];
if (token == null) return res.sendStatus(401);
jwt.verify(token, "secretKey", (err, user) => {
if (err) return res.sendStatus(403);
req.user = user;
next();
});
}
app.post("/login", (req, res) => {
const username = req.body.username;
const user = { name: username };
jwt.sign(user, "secretKey", (err, token) => {
res.json({ token: token });
});
});
app.listen(4000, () => {
console.log("Server is listening on port: 4000");
});
回答如下:
你用Postman做测试吗?
在邮递员的标题部分添加'授权'密钥,如图:
不需要'authHeader.split(" ");' ,请像这样更改您的代码:
const token = req.headers["authorization"];
// const token = authHeader && authHeader.split(" ")[1];
console.log(token)
更多推荐
req.headers['authorization'] 在 Nodejs JWT(JSON WEB TOKEN) 中未定义
本文发布于:2024-05-07 05:18:23,感谢您对本站的认可!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
发布评论