Концепция изменения электронной почты пользователя
У меня вопрос по поводу самой концепции изменения email пользователя. Это просто концепция без кода.
Когда пользователь хочет изменить email, он заходит в настройки и нажимает кнопку "Отправить ссылку для изменения email". После этого я отправляю на почту пользователя сообщение, которое содержит ссылку с токеном для изменения email. Ссылка выглядит следующим образом: {{domain}}/new-email/{{uid}}/{{token}}
. На этой странице пользователь может указать новый email, и теперь вот мой вопрос:
Мне нужно отправить еще одно сообщение на новую почту со ссылкой, чтобы проверить, является ли эта новая почта реальной.
Моя модель пользователя содержит только текущее поле email
. Мне нужно где-то запомнить новую почту, чтобы после того, как пользователь нажмет на ссылку активации внутри сообщения, поле email
будет заменено новой почтой. Где я должен хранить новую почту? Должен ли я создать новое поле внутри модели пользователя (заменить email
на current_email
и добавить new_email
) и после того, как пользователь нажмет на ссылку активации, current_email
будет заменено значением new_email
, а new_email
будет снова установлено в null? Или, возможно, мне следует хранить новую почту в токене (который будет находиться в URL ссылки активации) без создания нового поля в модели пользователя?
Какой вариант будет безопаснее и чище?
Я использую Django и React.
Я не рекомендую создавать новое поле.
Вы можете использовать опцию маркера или сохранить новый адрес электронной почты в кэше. Используйте значение id пользователя (или любое уникальное значение идентификатора), чей адрес электронной почты вы хотите изменить, и новый адрес электронной почты в качестве пары ключ-значение.