zoukankan      html  css  js  c++  java
  • 短信验证——上行和下行(转载)

    作者:天生的黑
    原文链接:https://www.cnblogs.com/iforever/p/5736142.html 
     

    短信验证码

    短信下行

    短信下行的使用场景

    短信验证码就是最常用的一个短信下行的例子,相对于传统的图片验证码,短信验证码最大的好处就是提升了账号的有效性,注册这一般都是使用自己的手机号吗。当然了,除此之外短信验证码还可以用于登陆,方便快捷。

    短信下行的设计

    短信下行的验证方式,较上行验证码简单很多,这里以短信验证码为例:

    1. 用户输入数据号。
    2. 点击获取验证码。
    3. 后端收到请求,根据手机号生成验证码,放入缓存,设置有效期,验证码以手机短信的形式发给用户。
    4. 用户收到验证码,进行校验。
    5. 请求后端进行校验。
    6. 服务器收到请求,根据手机号、验证码和服务器放入缓存中的进行匹配。

    短信上行

    短信上行的使用场景

    短信服务在互联网中应用的场景很多,比较常见的就是验证码了,但下行短信往往受网络的影响比较大,
    经常会出现用户收不到短信、短信延迟特别大的情况。为了解决这个问题,前辈们提出了一个改进的方案——上行验证
    码,上行验证码出现延迟的情况也有,不过这个延迟在用户方(网络不稳定,用户方会显示正在发送。。。),只要
    用户将短信放出去了就不会有延迟。

    短信验证码的设计

    这里使用短信上行注册为例说明下短信上行验证码:

    1. 获取用户手机号。
    2. 带上手机号请求后端。
    3. 后端生成验证码,将验证码和手机号映射存入缓存,并设置过期时间。
    4. 将生成的验证码和短信接收号码发送给用户(http形式)。
    5. 用户将验证码发送给指定的接收号码。
    6. 运营商收到用户的短信后,带上用户发送的内容和用户手机号,调用回调(短信运营商后台可以配置回调url)。
    7. 回调函数中去验证用户的发送内容是否ok,ok之后更新redis缓存中的标记,设置验证成功。
    8. 客户端轮询,检测用户对应的redis缓存标记是否ok,ok则继续执行操作。

    总结

    短信验证经常使用,大大小小的互联网公司都在用它,但我缺少了那种敏锐的嗅觉,一直没有意识到他具体是怎么实现的,自以为是的认为很简单。这次用到了,正好学习总结下。现在发现这个短信验证这个过程其实还挺有意思的。

  • 相关阅读:
    腾讯TBS加载网页无法自适应记录
    filter过滤器实现验证跳转_返回验证结果
    Oracle不连续的值,如何实现查找上一条、下一条
    springmvc.xml 中 <url-pattern></url-pattern>节点详解
    spring拦截器-过滤器的区别
    (转)spring中的拦截器(HandlerInterceptor+MethodInterceptor)
    @Value("${xxxx}")注解的配置及使用
    mybatis BindingException: Invalid bound statement (not found)
    spring声明式事务管理方式( 基于tx和aop名字空间的xml配置+@Transactional注解)
    Spring事务管理详解_基本原理_事务管理方式
  • 原文地址:https://www.cnblogs.com/sunshine-blog/p/9838977.html
Copyright © 2011-2022 走看看