Hapi.js -- 设置 X-Authorization 标头

问题描述 投票:0回答:2

我想在 Hapi.js 中对我的路由实施 X-Authorization。因此,当我发出请求时,我将创建一个 X-Auth 标头,我希望 Hapi 在允许执行某些代码之前检查它:

根据 Hapi 文档中的代码示例,我该如何实现它?

server.route({
method: 'GET',
path: '/hello/{user?}',
handler: function (request, reply) {
    const user = request.params.user ? encodeURIComponent(request.params.user) : 'stranger';
    reply('Hello ' + user + '!');
},
config: {
    description: 'Say hello!',
    notes: 'The user parameter defaults to \'stranger\' if unspecified',
    tags: ['api', 'greeting']
}
});
javascript node.js hapi.js
2个回答
3
投票

hapi 允许您使用

request.headers
访问路由处理程序中的请求标头,如下所示:

server.route({  
  method: 'GET',
  path: '/hello/{user?}',
  handler: function (request, reply) {
    const headers = request.headers   // <-- get request headers

    const auth = headers['x-authorization']

    // use the auth header value for further processing

    reply({ your: data })
  }
})

如果您需要更多详细信息,可以在本教程中阅读更多内容,了解如何访问 hapi 中的请求标头

此外,如果您需要检查每个传入请求的

X-Authorization
标头,那么创建专用插件会很有效。

希望有帮助!


2
投票

您可以使用

headers
对象的
request
属性来获取
X-Authorization
值。但是,它应该是
request.headers['x-authorization']
(全部小写)[1]

请求头名称应为小写,因为在 Node.js 中,

request
对象属于
http.IncomingMessage
类,其标头名称为小写。[2]

[1] http://hapijs.com/api#request-properties
[2] https://nodejs.org/dist/latest-v4.x/docs/api/http.html#http_message_headers

© www.soinside.com 2019 - 2024. All rights reserved.