Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
new JwtStrategy(params, (payload, done) =>
UserModel.findOne({where: {id: payload.userId}})jwt живет только на протяжении сессии, если ваш админ уволился то вы убираете роль, и при следующем логине в его jwt роль админ у него не будет.
Иначе мы получим базу отозванных токенов запросы к которой будут сравнимы по затратам с запросами профиля пользователя
В примере с уволенным админом достаточно держать в ENV переменной что-то вроде BLACKLIST_JWT через запятую. Вы не каждый день увольняете людей, поэтому так можно. Современный процессы continuous deployment позволяют менять env в течении пары минут.
по требованию разработчиков фронтенда добавить в 401 ответ объект с описанием ошибки (по умолчанию это строка «Unauthorized»)
app.post('/auth',
passport.authenticate('local', { failWithError: true }),
function(req, res, next) {
// Successful auth
return res.send({ success: true, message: 'Logged in' })
},
function(err, req, res, next) {
// Auth error
return res.status(401).send({ success: false, message: err })
}
)
Еще раз о passport.js