所以我想检查所有到我的 hapi rest api 的 http 路由,以获取有效的 api 密钥。我不想使用身份验证插件,因为除了 api 令牌检查之外,我还将在某些路由上进行基本身份验证。我习惯于在 express 中将其作为中间件,但是 hapi 中的正确方法是什么?
我应该创建自己的插件还是使用 server.ext 来完成此操作.. 还是应该以另一种方式进行?
到目前为止,这是我所做的方式
server.ext('onRequest', function (request, next) {
//make sure its https
if(request.headers['x-forwarded-proto'] && request.headers['x-forwarded-proto'] === "http") {
return next(Boom.badRequest('ssl is required'));
}
else
{
if (request.headers['x-api-key'] != apiToken) {
return next(Boom.unauthorized('api key is incorrect'));
}
else
{
next();
}
}
});