微信小程序登录逻辑
-
在涉及用户信息相关数据时会触发登录状态检测,一般检测
storage
里是存在token
和user_id
等信息,如果没有或已失效则跳转登录页面去重新登录 -
登录时调用
wx.login
方法获取code
发送给后端的登录接口 -
后端登录接口接收到数据时向微信服务器请求
auth.code2Session
可以获取到openid
和session_key
信息,然后拿着openid
去判断是否已经对应用户,存在则根据用户数据生成token
返回给前端,用户不存在则先创建用户后再根据用户信息生成token
返回给前端 -
前端拿到
token
和user_id
存储到本地stroage
中,后续请求需要在请求头里携带该token
-
后端会在接下来的需要用户登录后才能方位的接口进行鉴权,冲请求头中取出
token
解析后校验是否时正常token
, 是否过期,过期则返回token
过期信息。
扫码登录逻辑
待更新...
支付逻辑
-
服务器端准备
微信统一下单
所需参数,开始生成签名
,生成签名返回给前端 -
前端调用
wx.requestPayment
调起支付,支付完成后前端跳转到业务页面 -
后端此时会收到微信的回调通知,可以拿到订单支付结果,根据结果判断该订单是否已经处理过(因为微信可能会回调多次),如果处理过则直接跳过并给微信返回成功的消息,如果该订单没有处理过则需要处理支付成功后的逻辑,比如修改订单状态,发货等等一下操作。
分页逻辑
首先确定好几个变量
- 数据总条数
- 每页显示数
- 总页数(总页数=数据总条数/每页显示数)数据总页数 % 每页先数据 !=0 则总页数 + 1
- 当前页
确定好这4个变量的值做分页就非常简单了
select * from al_work limit 每页显示数 offset (当前页-1) * 每页显示数;
接口签名逻辑
待更新...
JWT token续签逻辑
前端每次请求都携带 access_token
和refresh_token
,后端验证如果 access_token
过期,则使用refresh_token
重新获取一个 access_token
和 新的refresh_token
如果验证 refresh_token
过期则直接返回前端过期重新需重新认证的消息
RBAC逻辑
- 用户表
- 角色表
- 权限表
- 菜单表
- 用户-角色
- 角色-权限
- 角色-菜单
第三方登录逻辑
待更新...
抽奖逻辑
待更新...
满减逻辑
待更新...
秒杀逻辑
待更新...
拼团逻辑
待更新...