Как ограничить количество запросов на отправку письма активации не записывая нечего в базу данные?
Я отправляю на почту ссылку на активацию аккаунта. В этой ссылке twt токен с двумя полями. Первое это хэш из почты, id юзера, и секретного ключа который мы воссоздаем на сервере и сверяем с тем что был в ссылке. Вторая - почта юзера. Таким образом я сделал ссылку активации аккаунта без надобности хранения данных на сервере.
Только теперь не знаю как ограничить количество запросов на повторную отправку письма активации.
Можно записывать в редис, но тогда не будет смысла в том что все данные для проверки в ссылке уже есть.
Придется просто генерировать uuid и записывать его в редис с почтой или айдишником пользователя.
Дополнительно:
Содержание
а какой вообще смысл в этой ссылке и переход по ней, если в бд ничего не записываешь / ничего не обновляешь ?
Только теперь не знаю как ограничить количество запросов на повторную отправку письма активации.
- просто нужно проверять активирован ли у него аккаунт, если нет - то только в этом случае отправлять ссылку на почту
если аккаунт не активирован и время позволяет отправить ссылку на почту - отправлять
Ответы:
Добавь в ссылку время создания кода активации и огранич ее время жизни, т.е. лимит не на количество.
Так же добавить к ссылке хеш 'от нее плюс секретную соль', или используй ассиметричное ее шифрование, чтобы не дать ее взломать
- Так и сделано. Но это время жизни токена, а не таймаут на отправку новых писем.
- Количество можно считать только записывая где то события
Точно помню статью, где за такие вещи отвечал модуль nginx на lua, храня эти данные в памяти
Для решения данной проблемы вы можете воспользоваться услугами фрилансеров. Мы выполним необходимую работу быстро и качественно.
Оставить комментарий Отменить
Ответы
- Есть ответ! к записи Как уменьшить масштаб меньше 100% в Windows 10 (22H2)
- Есть ответ! к записи Аналоги CloudFlare в России?
- Есть ответ! к записи Аналоги CloudFlare в России?
- Есть ответ! к записи Как называется человек, который дизайн придумает для сайта и сверстает его?
- Есть ответ! к записи Можно ли установить Яндекс.Диск на АльтЛинукс?
- Есть ответ! к записи Картинки мутные только на сафари, есть выход?
- Есть ответ! к записи Keenetic. Как настроить SSTP клиент с сертификатом?
- Есть ответ! к записи Чем заменить executor в aiogram 3?
Для ограничения количества запросов на отправку письма активации без записи данных в базу можно использовать сессии или куки. Вот пример реализации на PHP:
В данном коде мы используем сессии для отслеживания количества запросов на отправку письма активации. Каждый раз, когда пользователь делает запрос, мы увеличиваем счетчик в сессии. Если количество запросов превышает 3, мы выводим сообщение о том, что нужно подождать перед следующей попыткой. Если количество запросов не превышает лимит, то выполняется отправка письма активации.
Таким образом, мы ограничиваем количество запросов на отправку письма активации без необходимости записи данных в базу.