栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

使用短信登录和注册的流程

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用短信登录和注册的流程

现在各个网站普遍使用的登录认证方式是使用短信认证登录,并且在用户与服务器交互的过程中这部分功能需要被多次调用,所以在项目中不可避免地要包括这一部分,学习之后,在此记录其流程:

实现短信认证登录可以有两种方式:基于session实现和基于redis实现。

基于session实现的过程如下:

如上图是黑马程序员课程中的一张图,描述了短信登录的过程,这一过程分为三部分分别实现:

1. 发送短信验证码:

  • 用户在手机号输入框中输入一个手机号,然后点击发送验证码
  • 系统校验这个手机号是否是一个正确的手机号

  • 如果这个手机号不合法,则需要用户重新输入
  • 如果合法,则系统根据规则生成一个验证码,并且将这个验证码存储到session域中,同时以短信形式发送给用户提供的手机号

    2. 短信验证码登录、注册

  • 用户收到验证码之后,输入验证码并点击登录
  • 系统校验手机号(再次校验防止被修改)和验证码
  • 如果验证码和session域中的的不一致,认证失败,重新验证;
  • 如果验证成功进行到下一步
  • 用户根据手机号登录,有可能这个手机号是第一次使用,即系统中不存在对应的用户,则创建一个新的用户,初始化必要的信息,保存到数据库中
  • 此时数据库中存在一个对应的用户,将这个用户信息保存到session域中以后使用。

    3. 校验登录状态

  • 当用户发送请求的时候,首先判断用户是否登录,即session中是否存在用户信息,如果存在,说明用户已经登录,否则拦截请求并跳转到登录页面。使用拦截器实现。

    基于redis实现:

    基于session实现存在问题是:当有多个服务器的时候,session共享困难。一种解决的办法是基于redis实现。

    基于redis实现的过程与基于session的过程基本一致,不同的地方在于信息不是存储在session中,而是redis中。另外一个不同点在于,由于使用redis,所以数据是不同的用户都可以访问到的,而在session中,则只有当前用户可以访问到;所以数据在redis中的存储必须为每组数据赋值为一个独一无二的键值,并且在验证登录成功之后需要将这个键值返回给客户端。

  • 转载请注明:文章转载自 www.mshxw.com
    本文地址:https://www.mshxw.com/it/763952.html
    我们一直用心在做
    关于我们 文章归档 网站地图 联系我们

    版权所有 (c)2021-2022 MSHXW.COM

    ICP备案号:晋ICP备2021003244-6号