根据Nuxt 3的服务器目录文档,服务器中间件可用于更改请求标头。我想添加授权标头并通过服务器中间件将不记名令牌附加到我的请求中。
// /server/middleware/auth.js
export default defineEventHandler((event) => {
event.context.authorization = 'Bearer test';
event.node.req.headers = {...event.node.req.headers, Authorization:'Bearer test'};
});
我尝试了上面的代码,它适用于每个请求,但它似乎没有向请求标头添加任何内容,我该如何实现这一点?我应该更改哪个属性?
如果您想添加多个标题,可以使用
setHeader
或 setHeaders
。
这是一个例子。
假设我有一个测试 API,我想向其中添加标头。
~/server/api/test.get.ts
设置中间件
~/server/middleware/log.ts
export default defineEventHandler((event) => {
const requestedURL = getRequestURL(event)
if (requestedURL.pathname === '/api/test') {
setHeader(event, 'authorization', 'Bearer test')
}
})
getRequestURL
将从请求的URL输出所有相关数据。