2015-06-29 2 views
2

Мне нужно проверить клиентский ключ, а также заголовок jsonwebtoken во всех моих запросах на hapi.js rest api.цепочки запросов фильтров через плагины в hapi.js

В настоящее время я использую плагин hapi-auth-jwt для обработки токенов json web-страниц, и теперь я также хотел бы добавить обработчик, который проверяет правильный ключ клиента в заголовке api вверх по течению - прежде чем он это сделает любая проверка веб-маркера и все остальное - чтобы он мог быстро вернуть 401, если действительный клиент-api-ключ не включен.

Должен ли я делать это как плагин в hapi? Если да, то каким образом я могу установить порядок запуска плагинов - это просто порядок регистрации плагинов?

Как настроить плагин для перехвата всех HTTP-запросов - должен ли я сделать это схемой аутентификации?

exports.register = function (server, options, next) { 
// do I somehow set a default request handler here somehow? 
} 

ответ

1

Вы можете зарегистрировать extension function для доступного extension points в жизненном цикле запроса Хапи.

В вашем случае, так как вы хотите, чтобы запрос был проверен на наличие действительного ключа-api-ключа перед аутентификацией, функция расширения может быть зарегистрирована для onRequest10 или onPreAuth событий.

exports.register = function (server, options, next) { 

    server.ext('onRequest', function (request, reply){ 

     //Validate the request object here. 

     if (valid) reply.continue(); 
     else reply(Boom.unauthorized('Invalid API Key')); 
    }); 

    next(); 
} 
Смежные вопросы