Заголовок Passport-local и WWW-Authenticate
Я использую паспортно-локальную стратегию для простого API, который требует аутентификации. Я использую промежуточное программное обеспечение перед всеми моими маршрутами, которое обрабатывает доступ к приложению
var verifyAuth = function(req, res, next) {
if (req.originalUrl === '/signup' || req.originalUrl === '/login') {
return next();
}
if (req.isAuthenticated()) {
return next();
}
if (req.accepts('text/html')) {
return res.redirect('/login');
}
if (req.accepts('application/json')) {
res.set('WWW-Authenticate', '???');
return res.status(401).send({err: 'User should be logged'});
}
};
app.use(verifyAuth);
- Если пользователь подпишется или войдет, я разрешу доступ к этим маршрутам
- Если пользователь вошел в систему, я разрешаю доступ
- Если пользователь не вошел в систему и, например, находится в браузере, я перенаправляю на /login
- Если пользователь не вошел в систему и находится на каком-либо другом устройстве с Accept Header = 'application/json', приложение возвращает 401
Я читал, что используя 401, было бы интересно отправить заголовок WWW-Authenticate с ответом. Они предлагают использовать Basic Auth или OAuth в качестве значений. Какой показатель я должен использовать для локальной стратегии? Я думаю, что было бы также интересно отправить Местоположение с URL для входа в систему?