Comments 9
Разрешите понудить, но про авторизацию я в этой статье ничего, кроме следующего пункта и не видел, вообще ни слова.
И можно было бы сделать скидку популярную ошибку если не
Итак для начала нам следует вспомнить некоторые понятия, которые помогут дальше говорить на одном языке.
Т.е. в заголовке указывается авторизация, потом акцентируется внимание на терминологии, а потом по тексту опять аутентификация называется авторизацией
А если говорить про виды аутентификации, то очень годная статья 👍
Основная проблема JWT в SPA, после всех нужных "доп. реализаций" он уже не Stateless.
Возможно не стоит использовать jw, если не нужен stateless. У меня тоже часто такое, когда сначала решаем использовать jwt, а затем вдруг понимаем, что надо контролировать все это дело, а jwt как раз сделан для того, чтобы избавить от этой работы, вот и начинаются танцы с бубном вокруг))) увы, но тоже грешу такими танцами хахаха
Конечно не стоит, но пока достаточное количество людей упорно продолжают это делать (тут должно быть известная картинка про jwt и сессии, но она уже надоела)
Ну или не нужен stateful 😂
У меня про stateful проекты опыта наберется на пару вечеров офигительных историй, причем, на одном, где выступали как разработчики начинали с JWT и stateless потом пришли безопасники с бизнеком и такое намутили (вплоть до вебсокетов в каждой сессии с возможностью обмена служебной информацией между сессиями пользователя), что пришлось генерировать сессию в redis и складывать JWT токен с сессионными данными туда. В итоге на уровне миддлварки происходит разворачивание сессионного токена в JWT с дальнейшей передачей payload + session в основную логику.
А самое обидное, что после всех этих наворотов пользоваться системой стало практически невозможно и половину функций выключили в настройках
Хорошая статья.
Тут только надо поправить:
Сервер проверяет учётные данные
→ Сравнивает логин и пароль с логин-паролем из базы/хранилища.
В базе никакой пароль не храним, храним уникальное значение для каждой учётной записи - salt, и HMAC от пароля и этого значения.
Для проверки берём поступивший пароль от пользователя, считаем от него и сохранённого в базе salt HMAC, и сравниваем посчитанный HMAC, от хранящегося в БД.
Хранение: Обязательно в базе данных или
Redis
на стороне сервера
как мне кажется довольно некорректно писать что обязательно хранить refresh токен в бд и потом писать что эта аутентификация Stateless. Новичка это явно запутает.
Также новичка явно запутает заголовок про авторизацию, хотя про неё здесь пару строк.
Я бы советовал немного отредачить, т.к статья явно нацелена на новичков.
Сама статья отличная, немного освежить память помогает. Спасибо за ваш труд.
Коротко про виды авторизации