短信验证----上行和下行

   最近这几天登陆csdn,看到了关于用户注册及登陆手机短信验证的通知.看到文章下面都是一堆评论,由于小编在long long time ago绑定过手机号了,所以这次作为吃瓜群众,对此通知不做任何评价,只科普一下短信验证的上行和下行.下行短信:通过运营商发给你的短信,也就是你收到的一些服务信息.上行短信是指你给运行商的信息.用六个字描述就是"上:你发,下:你收"

下行:

设计:

1.用户输入手机号

2.点击获取验证码

3.后端收到请求,根据手机号生成验证码,将验证码存到缓存或者数据库中,将验证码以短信的形式发给用户.

4.用户收到短信,进行校验

5.请求后端校验

6.服务器收到请求,根据手机号,验证码和服务器放入缓存中的进行匹配.

适用场景:

输入手机号,运营商就会给你输入的手机号发送一条包含验证码的信息.这样的话,从用户体验度上有很大的好处,我不需要关心运营商的电话号,只需要得到我需要的信息即可.


上行:

设计:

1.获取用户手机号

2.带上手机号请求后端

3.后端生成验证码,将验证码和手机号映射存入缓存,并设置过期时间.

4.将生成的验证码和短信接收号码发送给用户(http形式)

5.用户将验证码发送给指定的接收号码

6.运行商收到用户的短信后,带上用户的内容和用户手机号,调用回调(短信运行商后台可以配置回调url)

7.回调函数中取验证用户的发送内容是否OK,OK之后更新redis缓存中的标记,设置验证成功.

8.客户端轮询,检测用户对应的redis缓存标记是否OK,OK则继续执行操作.

应用场景:

   参考csdn的注册或者是手机验证的需求,在安全方面,下行没有上行安全,怎么理解呢?在我看来,上行做的事情 和现实生活中的事情:"如何证明我是我",上行将这个问题完美的诠释了.上行以http的形式将"验证码"即"证明"显示到页面上,你将"证明"发送给运行商.运行商核实一下"证明"是否正确,如果正确,表名"你是你".




   这种方法在一定程度上更加的安全,但是小编认为,把发送短信给运行商的工作交给用户来做的话,体验度非常的不好.找到一种既安全体验度有好的才是王道!


posted @ 2017-04-16 21:35  陈晓婵  阅读(1054)  评论(0编辑  收藏  举报