7

我对 Django 有点陌生,这是我第一次使用短信验证实现注册表单。

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

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

非常感谢你提前

4

1 回答 1

8

将它们保存在 Redis 中。Redis的key可以有一个TTL(Time-To-Live),有TTL的key在时间段后会被自动删除。

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/

于 2016-11-08T09:27:49.647 回答