Задать вопрос
@ITDown

Как правильно хранить SMS-коды?

Имеется регистрация/авторизация где я отправляю код на номер телефона, данный код я сохраняю в базе на 5 мин, при каждой отправки кода я удаляю все коды в базе, дабы их не дублировать пользователю. Также у меня будут настройки где пользователь сможет сменить номер, но также при помощи SMS-кода. Нужно ли для каждого кода указывать тип для чего данный код? Сбрасывать нужно все коды или только все коды определенного типа при каждом запросе?

Под типом я подразумеваю: смена номера, авторизация и т.д. Была идея просто отправлять первый изначальный код если он не просрочен. Но в чем разница? Вроде разницы нет :
  • Вопрос задан
  • 160 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
AzaBroflovski
@AzaBroflovski
Software developer / Web Jedi
Да, у кода должен быть тип (auth, change_phone, reset_password и т.п) иначе будут коллизии, один процесс может перетереть код другого, удаляй коды конкретного типа (не все подряд)

Всегда создавай новый код при запросе, даже если старый ещё жив, юзер может потерять смску или просто передумал и начал делать чето еще что тоже требует смску

Что бы не долбили смсками, делаешь throttle
Ответ написан
Комментировать
Fragster
@Fragster
помогло? отметь решением!
ИМХО можно удалять только по протуханию, а то возможна ситуация, когда пользователь нажал за напрос кода, он не пришел, нажал на повторный запрос - приходит первая СМС, он вводит - неправильно.
Естественно, надо ограничивать количество запросов смс на номер например раз в минуту, но не больше чем 5 раз в час. ну и с одного ip - тоже, не более, допустим, 10 запросов в час
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы