手机号码注册思路

WBOY
Release: 2016-06-06 20:46:19
Original
2040 people have browsed it

最近在做网站手机号码注册,就是用户提交手机号码,服务端生成验证码发给用户手机,用户提交验证码比较,服务端生成的验证码应不应该存储在数据库里?还是有更好的办法,比如Session之类的。

回复内容:

最近在做网站手机号码注册,就是用户提交手机号码,服务端生成验证码发给用户手机,用户提交验证码比较,服务端生成的验证码应不应该存储在数据库里?还是有更好的办法,比如Session之类的。

最好的方法是存在内存 设置过期时间60秒左右
可以使用memcache

其实平常我们使用的手机验证功能已经很多了
点击短信验证,发送短信,倒计时开始,在倒计时期限里面,用户可能因为各种原因没有收到短信,提供一个重新发送短信的接口

可见短信验证码是不需要持久化存储的,这个东西放在内存中设定精确的过期时间是很好的解决方案,session的过期时间并不是严格的,比如设定60s,但是不一定会在60s的时候清除。redis,memcache都可以实现验证码内存存储自动过期功能。

在数据库里,只要一个字段,标识用户是否经过手机短信认证了

当然如果你的应用从一开始,不经过短信认证就无法,注册,这个标识字段就没有多大意义了

建议还是存储在数据库,并且设定一个字段是是否验证。这样,可能更方便你去操作。

个人觉得点击发送验证码后,服务器端生成验证码和时间,存储在session里即可,提交后比对验证码和时间戳即可,即便是内在内在里也最好存储上时间,毕竟缓存时间不会太精确。

建议保存数据库,可以做更多的事情,例如:

  1. 验证发送验证码次数
  2. 今日验证码错误次数

短信接口是否提供真实的消息到达通知?
短信发送记录建议持久化保存.
1、避免短信轰炸 你懂的;
2、短信发送不是免费的吧。

用REDIS吧,设置一个key的有效时间即可

重点是短信服务商。。。。。。。40分钟。。才收到验证码的时候,你就呕血

ajax验证,放在缓存中,设置过期时间,缓存判断取code进行验证

验证码使用缓存,数据库中增加验证字段,设置个过期时间就可以,错误次数等都可以写在缓存里。

个人觉得还是存在数据库里是比较稳妥的方案,

1)思路不要局限在验证码的时效性上上面,
2)存在数据库可以提供更多限制,比如每日每个号码收取验证码的次数(当你的用户群体比较大的时候这是一个显而易见必须的要做的限制)
3)你可以清楚的知道你发送哪个验证码给某一个用户,方便和SP运营商对数等等

根据我做过的Project来讲我们都是放在数据库

上一年项目需要,学习了memcached,发现特别好用,你把这种东西存储到memecached,想多长时间过期就设置多久的过期时间,轻松搞定你现在的困惑

刚看到楼上有人说用REDIS,那个也行,都是键值对存储在内存中,而且还可以与其他应用程序共享数据

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template