最近在做网站手机号码注册,就是用户提交手机号码,服务端生成验证码发给用户手机,用户提交验证码比较,服务端生成的验证码应不应该存储在数据库里?还是有更好的办法,比如Session之类的。
ringa_lee2017-04-10 14:46:45
其实平常我们使用的手机验证功能已经很多了
点击短信验证,发送短信,倒计时开始,在倒计时期限里面,用户可能因为各种原因没有收到短信,提供一个重新发送短信的接口
可见短信验证码是不需要持久化存储的,这个东西放在内存中设定精确的过期时间是很好的解决方案,session的过期时间并不是严格的,比如设定60s,但是不一定会在60s的时候清除。redis,memcache都可以实现验证码内存存储自动过期功能。
在数据库里,只要一个字段,标识用户是否经过手机短信认证了
当然如果你的应用从一开始,不经过短信认证就无法,注册,这个标识字段就没有多大意义了
阿神2017-04-10 14:46:45
个人觉得点击发送验证码后,服务器端生成验证码和时间,存储在session里即可,提交后比对验证码和时间戳即可,即便是内在内在里也最好存储上时间,毕竟缓存时间不会太精确。