Как сделать ссылку на основе токена JWT единовременной ссылкой для сброса пароля и проверки электронной почты - PullRequest
1 голос
/ 19 апреля 2020

1. Что я делал до сих пор

Я добавил функцию сброса пароля в свой проект, в котором пользователь получает ссылку в своем письме. Я использовал хешированный пароль пользователя в качестве секретного ключа, чтобы использовать ссылку ОДИН РАЗ. Таким образом, если пользователь меняет свой пароль один раз, то меняется ha sh, а также секретный ключ, делающий проверку токена недействительной, что, в свою очередь, приводит к тому, что ссылка ОДИН РАЗ ИСПОЛЬЗУЕТСЯ. Поскольку я использовал хешированный пароль пользователя в качестве секретного ключа, мне также необходимо передать _id пользователя с токеном в ссылке, чтобы во время проверки токена сначала я получал пароль пользователя ha sh с помощью пользователя. _id что я передал с токеном по ссылке.

2. Что я хочу сделать

Теперь пришло время добавить функцию проверки электронной почты в мой проект, и я не понимаю, как сделать ссылку подтверждения одноразовой ссылкой. А что если пользователи несколько раз запрашивают подтверждение по электронной почте, а я генерирую такую ​​ссылку и отправляю ее на соответствующую электронную почту пользователя.

3. Я думал об этом

Я думал о создании базы данных для проверки электронной почты и вставлял user_Id и token в эту базу данных каждый раз, когда пользователь запрашивает подтверждение, и как только пользователь щелкает по любому из запрошенных ссылки Я проверяю пользователя и удаляю весь токен, связанный с user_Id пользователя, чтобы при повторном нажатии любой ссылки или той же ссылки электронное письмо уже было проверено и токен был удален, чтобы я мог ответить "Неверная ссылка или Запрос "пользователю.

Если нет. 3 - механизм le git, который я буду реализовывать так же, как нет. 1

Если вышеупомянутый механизм имеет тип le git и подходит для go, я хотел бы реализовать то же самое для моей функции сброса пароля, чтобы мне не нужно было использовать пароль пользователя ha sh в качестве секрета а также не передавать пользователю _id по ссылке

Просьба также дать рекомендации, если обе эти функции могут быть выполнены по-разному

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...