Я использую hapijs с hapi-auth-basic и пытаюсь отлаживать с помощью инспектора узлов.Когда функция hapi-auth-basic validate вызывается
Реализован пример на GitHub странице с небольшими изменениями требует базовой аутентификации на пути/входа в систему вместо всего получает:
const validate = function(username, password, callback) {
const user = users['john']; //john exists in a user array
if (!user) {
return callback(null, false);
}
callback(null, true, {
id: user.id,
name: user.name
});
};
...
server.register(require('hapi-auth-basic'), (err) => {
server.auth.strategy('simple', 'basic', {
validateFunc: validate
});
});
{
method: 'POST',
path: '/login',
config: {
auth: 'simple',
handler: require('../../public/api/handlers/login.js')
}
}
Все другие маршруты set to auth: false. Я знаю, что он применяет «простую» стратегию, потому что, если я устанавливаю auth на false для/login, я нахожу точку останова в файле login.js.
Проблема в том, что я получаю 401 на вызов, и я никогда не получаю точку останова в функции проверки.
Edit: Заголовок посылается клиентом как:
Accept:*/*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8
Access-Control-Request-Headers:accept, content-type
Access-Control-Request-Method:POST
Connection:keep-alive
Host:localhost:3000
Origin:http://mac.local:3000
Referer:http://mac.local:3000/ User-Agent:Mozilla/5.0
(Macintosh; Intel Mac OS X 10_11_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36
с содержанием как:
{"email":"[email protected]","password":"xcvx"}
То, что я, вероятно, missunderstand это шаги в базовой аутентификации. Как login POST мне нужно отправить заголовок авторизации? Я думал, что эта страница отправляет обрабатываемую полезную нагрузку, а затем, если удастся, все остальные запросы будут использовать некоторый токен, например jwt, включая заголовок авторизации.
Я тестирую аурелию. Метод, который делает call, кажется, не устанавливает никакого заголовка. Нужно ли настраивать какие-либо настройки?
Функция подтверждения вызывается здесь: https://github.com/hapijs/hapi-auth-basic/blob/master/lib/index.js#L65. Возможно, ваш 401 поступает из ранее в этом файле. Вам не хватает заголовка авторизации или он находится в неправильном формате? Как вы делаете запросы? Браузер? Можете ли вы представить полный неповрежденный пример кода, чтобы показать эту проблему? –
@MattHarrison ты был прав. Заголовок авторизации отсутствует. github.com/hapijs/hapi-auth-basic/blob/master/lib/index.js#L37 ищет его. Необходимо проверить, почему клиент не включает его и обновить вопрос. благодаря – linktoemi