簡體   English   中英

req.headers['authorization'] 在 Nodejs JWT 中未定義(JSON WEB TOKEN)

[英]req.headers['authorization'] is undefined in 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"); });

當 console.log(The req.headers['authorization']) 時 req.headers['authorization'] 返回 undefined

JWT 的此代碼在以 Authorization: Bearer "token" 格式發送請求時始終返回狀態 401(未授權),

請幫忙 !!

您是否使用 Postman 進行測試?

在 postman 的標題部分添加“授權”鍵,如圖:

在此處輸入圖像描述

並且不需要'authHeader.split(" ") 1 ;',請像這樣更改您的代碼:

const token = req.headers["authorization"];
//   const token = authHeader && authHeader.split(" ")[1];
console.log(token)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM