在哪里保存发送给用户进行注册的验证码

时间:2016-11-08 09:00:35

标签: python django sms-verification

我对Django不熟悉,这是我第一次使用sms验证实现signUp表单。

我获取用户手机号码并生成随机数并发送给他;我希望生成的代码在30分钟后过期,之后我不需要它们,所以似乎将它们保存在DB中并且在到期时间之后删除它们似乎不是一个好主意。

我想知道是否有人可以帮助我解决“实施这个问题的最佳方法是什么?”

非常感谢你提前

1 个答案:

答案 0 :(得分:3)

将它们保存在Redis中。 Redis键可以有一个TTL(生存时间),带有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/

的更多文档