登录与注册的一些分析?

403 阅读3分钟

注册

用户名:

电话: 验证码

输入验证码:

密码:

支付密码:

同意条款

提交

  1. 用户名格式校验=>提示
  2. 是否存在=>存在给与提示:已经被注册

向服务器发送请求:(一)

post 请求 地址:/user/phone 服务器:

  • 1.获取客户端请求主体req.body传递的电话
  • 2.到所有的用户数据中查找
  • 3.把查找的结果返回给客户端
  1. 向服务器发送请求

向服务器发送请求:(二)

post请求 /user/code

  • 1.获取传递的phone

先生成一条校验码信息=>code.json

  1. 随机生成6位数字校验码

2)校验码MD5加密和二次处理

3)存储到数据库code.json中(记录存储的时间)

4)编辑短信内容,调用第三方服务器平台,向phone发送手机短信

5)返回发送结果(成功还是失败)

  1. 把按钮设置30s倒计时

点击提交按钮:

  1. 表单校验(防止XSS攻击,或者减少不必要的通信)
  • 验证手机和校验是否匹配

post请求向服务器:(三)

发送信息进行验证码MD5加密 服务器:

  • 1.获取客户端传递的信息(把code需要二次加密)
  • 2.到code.json中找的是否存在对应的手机和校验码 ==》即使找到也要验证时间是否在30min之内
  • 3.返回结果
  1. 把用户编写的内容提交给服务器

向服务器发请求:(四) post请求 服务器: 为了保证信息的准确性,服务器可能对于传递的信息进行二次校验

  • 1.获取传递的信息(把密码进行二次加密)
  • 2.把信息写入到user.json里(用户的id是自增长的)
  • 3.返回给客户端结果
  • 验证码需要MD5加密
  • 两个密码也需要MD5加密
  1. 接收返回的结果=》成功(跳转到登录页)

登录的模式

模式一:用户名和密码

账号:_________ 密码:_________ 提交

  1. 表单校验
  2. 密码md5加密
  3. 发送信息给服务器

post 请求 (/user/login) 传参account=xxx&password=xxx&type=1 服务器:

  • 1.获取传递的信息(密码加密)
  • 2.到全部用户数据中找是否有符合的数据 + 没有找到:返回客户端没找到 + 找到了:从session中村粗当前登录用户的id(登录态校验,然后再返回给客户端成功) + 返回给客户端的======》响应头:set-cookie=connectsid=xxx
  1. 接收返回的结果

模式二:手机和验证码登录

手机:____________ 发送验证码 验证码:__________ 提交

  1. 验证格式和验证是否存在,不存在提示注册;
  2. 发送短信验证码
  3. 发送成功开启按钮倒计时

点击提交:

  • 1.格式校验
  • 2.把手机号和验证码发送给服务器 向服务器发送请求: post请求 /user/login 传参:account=xxx&password=xxx&type=2

服务器:

  • 1.获取信息(验证码二次加密) + 2.到验证码数据表中查找是的匹配=>不匹配返回错误 + 3.基于phone从全部用户信息中获取当前用户的基本信息 + 4.中session:req.session.userId=xxx + 5.返回给客户端
  • 3.接收返回结果

客户端接收到结果后:

  • 把返回的用户基本信息存储到vuex/redux中

目的:后期客户端验证是否登录和展示基本信息都从redux中获取即可 redux:

 isLogin:true
 baseInfo:{
 id:1,
 name:'xxx'
 }
  • 路由跳转 可以跳转到首页或者返回上级路由

忘记密码

手机号:发送验证码 验证码:__ 提交

首先校验验证码是否正确 正确之后:跳转到修改密码页面

路由传参:传递的手机号

修改密码页面: 把新密码和手机号发送个服务器

服务器:

  • 1.密码的二次处理
  • 2.到全部数据中找到手机号匹配的用户,找到后把用户的密码修改为传递的最新密码
  • 3.返回结果