Куда сохранить код подтверждения, отправленный пользователю для регистрации

Я как-то новичок в Django, и я впервые реализую форму регистрации с проверкой смс.

Я получаю номер мобильного телефона пользователя, генерирую случайное число и отправляю ему; Я хочу, чтобы срок действия сгенерированного кода истек через 30 минут, и после этого они мне не нужны, поэтому кажется, что не стоит сохранять их в БД, а после истечения срока их действия удалять.

Интересно, может ли кто-нибудь помочь мне с вопросом: "Каков наилучший способ реализовать это?"

Огромное спасибо заранее

1 ответ

Решение

Сохранить их в Redis. Клавиши Redis могут иметь TTL(Time-To-Live), клавиши с TTL удаляются автоматически после определенного периода времени.

import redis
r = redis.StrictRedis()

# create pin 
r.set("<phone-number>", <sms-pin>)
r.expire("<phone-number>", 1800) # 1800 seconds = 1/2 hour

# get pin
if r.exists("<phone-number>"):
    pin=r.get("<phone-number>")
    ... validate pin
else:
    ... invalid pin

Другие документы на http://agiliq.com/blog/2015/03/getting-started-with-redis-py/

Другие вопросы по тегам