一、背景

    当用户注册网站之后需要绑定手机才能进行如回帖、购买商品、查看特定内容等操作


二、需求

    用户绑定手机流程的实现


三、实现

    0、整体实现大致流程

    用户绑定手机号的思考

    1、如果用户没有绑定手机,则在绑定手机处显示未绑定手机,给出“立刻绑定”按钮去绑定:

1.1、绑定“立刻绑定”按钮,弹出绑定手机窗口(或者跳转绑定手机新页面)

1.2、绑定手机窗口包括:手机号,验证码,“发送验证码”按钮, “确定”按钮,“取消”按钮

1.3、绑定手机流程:

                 1.3.1、手机校验:

                         1.3.1.1 、校验手机格式是否正确("/^1[3,5,8]\d{9}$/"

                         1.3.1.2 、手机号码是否已经绑定过(通过手机号查询数据库表中是否存在该手机号)

 1.3.2、手机校验完成,用户点击发送验证码,该手机号码收到一条验证码:

 1.3.2.1 、发送间隔时间的验证

 1.3.2.2 、判断当前是否能够发送短信验证码:

                                        通过当前时间和最后一次成功发送短信的时间之间的间隔。例如,需要间隔60s才能重新发送,不管前台如何操作,只要当前时间和最后一次成功发送短信的时间的时间间隔没有60s,就不允许再次发送。

  1.3.2.3 、最后一次成功发送短信的时间如何获取?

       如果是第一次点击发送验证码,是没有最后一次成功发送短信的时间,所以允许直接发送短信,执行发送完成之后,记录最后一次成功发送短信的时间

  1.3.2.4、最后一次成功发送短信的时间存放在哪里?

                                        暂时存放到Session中(后续使用redis缓存,一般在实践中也使用redis缓存,但是redis缓存需要高可用集群的配置方式,将验证码放到redis缓存中,如果redis缓存挂了,后果比较严重)

  1.3.2.5、存在问题:

                                        1.3.3.5.1、关闭浏览器之后再次输入同样的手机号码就可以在两次时间间隔之内再次发送验证码

1.3.3.5.2、第一次发送短信,没收到;第二次发送收到了(如何判断收到的验证码是第一次还是第二次发送的),收到的都是上一次发送的短信验证码怎么办?

                 1.3.3 、处理短信的发送:

     1.3.3.1、生成验证码,执行发送:

                                          1.3.3.1.1、只要生成一个验证码,马上就可以执行发送?

    1.3.4、手机号和验证码都正确之后,点击确定按钮:
       1.3.4.1、进行验证码的判断:
             1.3.4.1.1、该号码已经成功发送了短信验证码
              1.3.4.1.2、发送的手机号码和本次绑定的手号码相同
              1.3.4.1.3、前台输入的验证码和发送成功的验证码相同
               1.3.4.1.4、该验证码是否在有效时间之内

     1.3.4.5、发送按钮不可用,重新发送倒计时:
          1.3.4.5.1、在一段时间内,不可重复点;
          1.3.4.5.2、一段时间后又可以继续发;

          1.3.4.5.3、有一些网站刷新页面之后又可以继续发送验证码,但需要的是计算刷新页面,也不能在一段时间之内重复发送--后台验证,可以点击,但在该段时间内仍然不能发送

     1.3.4.6、输入收到的手机验证码,然后点击确定,如果验证码正确,完成绑定:

   1.3.4.6.1、如果验证码错误或者不输入,则提示失败

  1.3.4.6.2、如果输入验证码之后,用户又修改了绑定手机号码,此时验证码是正确的,但是手机号却不对,所以后台需要校验当前手机号是否为放发送验证码的手机号
   1.3.4.6.3、验证码本身也有过期时间
 
     1.3.4.7、给该用户添加已经绑定手机的状态码:

1.3.4.7.1、添加状态码:用户当前状态码 || 需要添加的状态码

1.3.4.7.2、如何判断用户当前拥有状态码:用当前状态码 && 要判断的状态码(如果结果>0,则有;反之则没有)

1.3.4.7.3、移除状态码:当前拥有状态码 ^ 需要移除的状态码
  
     1.3.4.8、哪些东西需要放置在session中?
 1.3.4.8.1、验证码
1.3.4.8.2、手机号码

    2、如果手机已经绑定,显示已经绑定,后面给按钮修改手机(这里就不细讲了)


四、最后

    1、这个流程只是个人在实现该功能时的一点思考,当中还有许多的不足之处,日后会再慢慢完善此功能,如果有建议或者意见,请私信给我,感谢指正。

相关文章:

  • 2022-12-23
  • 2021-11-15
  • 2022-12-23
  • 2021-06-12
  • 2021-07-12
  • 2022-12-23
  • 2021-12-15
  • 2021-10-23
猜你喜欢
  • 2022-01-05
  • 2021-09-09
  • 2021-12-12
  • 2021-10-21
  • 2022-12-23
  • 2021-11-28
  • 2021-12-05
相关资源
相似解决方案