gpt4 book ai didi

node.js - 403禁止 express 。无法接受授权 header

转载 作者:行者123 更新时间:2023-12-05 06:33:06 26 4
gpt4 key购买 nike

我有一个 REST Api,当用户拥有身份验证 token (我使用 jwt token )时,所有端点都必须发送响应。当我使用 postman 测试我的代码时,一切正常,但从前端不工作( session 在 OPTION 请求后关闭,并且未设置请求 header 承载 token )。

认证中间件

module.exports = function(req, res, next) {
const authorization = req.headers['authorization'];
console.log(authorization);
const token = authorization
? authorization.replace('Bearer ', '')
: null;

if (!token)
return res.status(403).send({ auth: false, message: 'No token provided.' });

jwt.verify(token, config.secret, function(err, decoded) {
if (err)
return res.status(500).send({ auth: false, message: 'Failed to authenticate token.' });

req.userId = decoded.id;
next();
});
}

路线

const Router                = require('express').Router;

//Authentication Middleware
const requireAuthentication = require('../middlewares/').Auth()

module.exports = () => {
let router = new Router();
router.use(requireAuthentication);
router.use('/accounts', require('./account')());
router.use('/projects', require('./projects')());
return router;
};

有认证 /image/cAFw5.png

无需身份验证 /image/VUuuv.png

最佳答案

原因在访问 header 中

我在 Bootstrap 文件中添加了中间件。

app.use(function(req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'GET, PUT, POST, DELETE, OPTIONS');
res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization, Content-Length, X-Requested-With');

if ('OPTIONS' === req.method) {
res.send(200);
}
else {
next();
}
});

关于node.js - 403禁止 express 。无法接受授权 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50904729/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com