JWT提供无效令牌

在本地工作,我的jwt令牌无效,但在jwt.io中它显示了经过验证的签名。不知道我在想什么。每当我尝试在应用程序中调用api时,签名都无效。

Link.js

const { Router } = require("express");
const Link = require("../models/Link");
const auth = require("../middleware/auth.middleware");
const router = Router();

router.get("/", auth, async (req, res) => {
try {
const links = await Link.find({ owner: req.user.userId });
res.json(links);
} catch (error) {
res.status(500).json({ message: "Something went wrong, try again" });
}
});

auth.middleware.js

const jwt = require("jsonwebtoken");
const config = require("config");


module.exports = (req, res, next) => {
if (req.method === "OPTIONS") {
return next();
}

try {
const token = req.headers.authorization; // Token

if (!token) {
  return res.status(401).json({ message: "No Authorization" });
}

const decoded = jwt.verify(token, config.get("secret"));

req.user = decoded;
next();
} catch (error) {
res.status(401).json({ message: "No Authorization" });
}
};

Links.tsx

const LinksPage: React.FC = () => {
const [links, setLinks] = useState([]);
const fetchLinks = useCallback(async () => {
try {
  const fetched = await request("http://localhost:5000/api/link/", "GET", null, {
    Authorization: Token,
  });
  setLinks(fetched);
} catch (error) {
  alert(error);
}
}, []);
};
评论