You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JWT未随请求发送导致验证失败的问题求助

JWT未随请求发送导致验证失败的问题求助

大家好,我最近在开发网站的JWT验证功能时碰到了一个棘手的问题,折腾半天没找到原因,想请教下各位前辈。

具体情况是:用户登录后,服务器会返回一个JWT,我已经把这个token存在了客户端的localStorage里,用浏览器开发者工具能明确看到localStorage里确实有这个token。

但当我调用后端的verifyToken接口(POST请求)进行token验证时,后端始终返回“没有提供token”的错误。我把后端的验证代码贴出来:

exports.verifyToken = async (req, res) => {
    const token = req.headers.authorization?.split(" ")[1];
    console.log(req.headers);
    console.log(token);
    if (!token) {
        return res.status(401).json({ message: 'No token provided' });
    }

    try {
        const decoded = jwt.verify(token, process.env.JWT_SECRET);
        console.log("Decoded token:", decoded);
        return res.status(200).send('User is authorized');
    } catch (error) {
        console.error('Token verification error:', error);
        return res.status(401).json({ message: 'User is unauthorized' });
    }
};

另外,服务器端的CORS配置如下:

app.use(cors({
    origin: 'http://localhost:3000',
    methods: 'GET,HEAD,PUT,PAT...'
}));

从后端控制台的打印信息来看,req.headers里根本没有Authorization字段,token变量也一直是undefined。我猜测会不会是前端请求时没把token正确放到请求头里?或者是CORS的配置有问题,导致跨域请求时Authorization头没能被正常携带?

有没有大佬能帮我分析下问题出在哪里,该怎么解决这个问题?

备注:内容来源于stack exchange,提问作者Nitin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 12:08:07