как сделать плагин hapi auth необязательным

Я хотел бы использовать подключаемый модуль аутентификации токена hapi jwt https://github.com/ryanfitz/hapi-auth-jwt, но создайте маршрут с дополнительной аутентификацией. Как я могу предотвратить возврат маршрута 401 и вместо этого продолжить выполнение с нулевым значением request.auth.credentials.

Я бы хотел, чтобы все другие маршруты, которые его используют, сохраняли ту же реализацию возврата 401 для неаутентифицированных запросов.

server.register(require('hapi-auth-jwt'), function (error) {

    server.auth.strategy('token', 'jwt', {
        key: privateKey,
        validateFunc: validate
    });

    //make this one allow anonymous while also reading logged in credentials
    server.route({
        method: 'GET',
        path: '/',
        config: {
            auth: 'token'
        }
    });

    server.route({
        method: 'GET',
        path: '/mystuff',
        config: {
            auth: 'token'
        }
    });
});


server.start();

person MonkeyBonkey    schedule 30.01.2015    source источник


Ответы (2)


Вы можете сделать его необязательным в конфигурации маршрута:

server.route({
    method: 'GET',
    path: '/',
    config: {
        auth: {
            strategy: 'token',
            mode: 'optional'
        }    
    }
});

Режим может быть true, false, required, optional или try. Дополнительные сведения см. в руководстве по аутентификации.

person Gergo Erdosi    schedule 30.01.2015

Помимо конфигурации аутентификации маршрута optional, вы также можете использовать try.

server.route({
  method: 'GET',
  path: '/',
  config: {
    auth: {
      strategy: 'token',
      mode: 'try'
    }    
  }
})

Разница между этими двумя

  • optional: учетные данные для аутентификации не требуются, но если они предоставлены, они должны быть действительными
  • try: если пользователь предоставляет неверные учетные данные для аутентификации, они все равно будут приняты, и пользователи перейдут к обработчику маршрута.
person Marcus Poehls    schedule 02.02.2017