Генерирование токенов и отправка их пользователям

Я пытаюсь реализовать функции активации учетной записи и сброса пароля и хотел бы ознакомиться с теорией. В настоящее время у меня есть 2 таблицы, таблица пользователей и таблица токенов. Пользователь регистрируется. Я сохраняю пользователя в базе данных, генерирую токен и отправляю его по электронной почте. Вот как я решаю проблему: я создаю токен размером 16 байт и использую его для создания ссылки, напримерhttp://localhost:1200/api/activation/<token>. Однако в базе данных я храню хэшированный токен (хэшированный с помощью sha256). Затем, теоретически, когда пользователь нажимает на ссылку, я выполняю sha256 над токеном и смотрю, совпадает ли он с тем, который хранится в базе данных, верно? Я думаю, причина, по которой рекомендуется хранить хэш внутри базы данных, заключается в том, что если у злоумышленника есть доступ к базе данных, он не сможет выдать себя за пользователя (ему все еще нужен оригинальный токен), верно?

Вы можете использовать Simple JWT - это бэкэнд аутентификации JSON Web Token для Django REST Framework. Его цель - охватить наиболее распространенные случаи использования JWT, предлагая консервативный набор функций по умолчанию. Он также стремится быть легко расширяемым в случае отсутствия нужной функции.

Подробнее Django JWT Token

Вернуться на верх