注册
用户名:
电话: 验证码
输入验证码:
密码:
支付密码:
同意条款
提交
- 用户名格式校验=>提示
- 是否存在=>存在给与提示:已经被注册
向服务器发送请求:(一)
post 请求 地址:/user/phone 服务器:
- 1.获取客户端请求主体req.body传递的电话
- 2.到所有的用户数据中查找
- 3.把查找的结果返回给客户端
- 向服务器发送请求
向服务器发送请求:(二)
post请求 /user/code
- 1.获取传递的phone
先生成一条校验码信息=>code.json
- 随机生成6位数字校验码
2)校验码MD5加密和二次处理
3)存储到数据库code.json中(记录存储的时间)
4)编辑短信内容,
调用第三方服务器平台,向phone发送手机短信
5)返回发送结果(成功还是失败)
- 把按钮设置30s倒计时
点击提交按钮:
- 表单校验(防止XSS攻击,或者减少不必要的通信)
- 验证手机和校验是否匹配
post请求向服务器:(三)
发送信息进行验证码MD5加密 服务器:
- 1.获取客户端传递的信息(把code需要二次加密)
- 2.到code.json中找的是否存在对应的手机和校验码 ==》即使找到也要验证时间是否在30min之内
- 3.返回结果
- 把用户编写的内容提交给服务器
向服务器发请求:(四) post请求 服务器: 为了保证信息的准确性,服务器可能对于传递的信息进行二次校验
- 1.获取传递的信息(把密码进行二次加密)
- 2.把信息写入到user.json里(用户的id是自增长的)
- 3.返回给客户端结果
- 验证码需要MD5加密
- 两个密码也需要MD5加密
- 接收返回的结果=》成功(跳转到登录页)
登录的模式
模式一:用户名和密码
账号:_________ 密码:_________ 提交
- 表单校验
- 密码md5加密
- 发送信息给服务器
post 请求 (/user/login) 传参account=xxx&password=xxx&type=1 服务器:
- 1.获取传递的信息(密码加密)
- 2.到全部用户数据中找是否有符合的数据 + 没有找到:返回客户端没找到 + 找到了:从session中村粗当前登录用户的id(登录态校验,然后再返回给客户端成功) + 返回给客户端的======》响应头:set-cookie=connectsid=xxx
- 接收返回的结果
模式二:手机和验证码登录
手机:____________ 发送验证码 验证码:__________ 提交
- 验证格式和验证是否存在,不存在提示注册;
- 发送短信验证码
- 发送成功开启按钮倒计时
点击提交:
- 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.返回结果