常用逻辑

269 阅读2分钟

微信小程序登录逻辑

  1. 在涉及用户信息相关数据时会触发登录状态检测,一般检测 storage 里是存在tokenuser_id等信息,如果没有或已失效则跳转登录页面去重新登录

  2. 登录时调用wx.login 方法获取code 发送给后端的登录接口

  3. 后端登录接口接收到数据时向微信服务器请求auth.code2Session 可以获取到 openidsession_key 信息,然后拿着 openid 去判断是否已经对应用户,存在则根据用户数据生成 token 返回给前端,用户不存在则先创建用户后再根据用户信息生成 token 返回给前端

  4. 前端拿到 tokenuser_id 存储到本地 stroage 中,后续请求需要在请求头里携带该 token

  5. 后端会在接下来的需要用户登录后才能方位的接口进行鉴权,冲请求头中取出 token 解析后校验是否时正常 token, 是否过期,过期则返回 token 过期信息。


扫码登录逻辑

待更新...


支付逻辑

  1. 服务器端准备 微信统一下单 所需参数,开始生成 签名 ,生成签名返回给前端

  2. 前端调用 wx.requestPayment 调起支付,支付完成后前端跳转到业务页面

  3. 后端此时会收到微信的回调通知,可以拿到订单支付结果,根据结果判断该订单是否已经处理过(因为微信可能会回调多次),如果处理过则直接跳过并给微信返回成功的消息,如果该订单没有处理过则需要处理支付成功后的逻辑,比如修改订单状态,发货等等一下操作。


分页逻辑

首先确定好几个变量

  1. 数据总条数
  2. 每页显示数
  3. 总页数(总页数=数据总条数/每页显示数)数据总页数 % 每页先数据 !=0 则总页数 + 1
  4. 当前页

确定好这4个变量的值做分页就非常简单了

select * from al_work limit 每页显示数 offset (当前页-1) * 每页显示数;

接口签名逻辑

待更新...


JWT token续签逻辑

前端每次请求都携带 access_tokenrefresh_token,后端验证如果 access_token 过期,则使用refresh_token 重新获取一个 access_token 和 新的refresh_token 如果验证 refresh_token 过期则直接返回前端过期重新需重新认证的消息


RBAC逻辑

  • 用户表
  • 角色表
  • 权限表
  • 菜单表
  • 用户-角色
  • 角色-权限
  • 角色-菜单

第三方登录逻辑

待更新...


抽奖逻辑

待更新...


满减逻辑

待更新...


秒杀逻辑

待更新...


拼团逻辑

待更新...