首頁 >後端開發 >php教程 >手机号码注册思路

手机号码注册思路

WBOY
WBOY原創
2016-06-06 20:46:192052瀏覽

最近在做网站手机号码注册,就是用户提交手机号码,服务端生成验证码发给用户手机,用户提交验证码比较,服务端生成的验证码应不应该存储在数据库里?还是有更好的办法,比如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,那个也行,都是键值对存储在内存中,而且还可以与其他应用程序共享数据

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn