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

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

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

基于session实现的过程如下:

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

1. 发送短信验证码:

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

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

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

3. 校验登录状态

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

基于redis实现:

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

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

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值