如何用Nuxt 3服务器中间件修改请求头并添加Bearer令牌?
直接覆盖event.node.req.headers对象不会生效,因为Node.js的IncomingMessage请求头是特殊的不可直接替换的对象。正确做法是直接修改原headers对象的属性:
// /server/middleware/auth.js export default defineEventHandler((event) => { // 直接为原headers对象添加/修改Authorization头 event.node.req.headers.authorization = 'Bearer test'; // 同时存入context,方便后续服务器逻辑直接取用 event.context.authorization = 'Bearer test'; });
如果你的需求是在服务器端发起内部/外部API请求时自动携带这个头,可以结合Nuxt的$fetch拦截器配置;如果只是要让当前请求的头能被后续服务器逻辑读取,上述代码就可以满足需求。
另外需要注意:HTTP请求头名称大小写不敏感,按规范通常使用小写authorization,不过大写Authorization也能被识别,直接修改原对象属性即可生效。
内容的提问来源于stack exchange,提问作者Mehmet Ali KOÇAL
相关产品推荐
相关产品推荐

