小程序登录流程(使用unionid)
2022-09-29 10:05:01 0 举报
登录查看完整内容
微信小程序登录流程(使用unionID)
作者其他创作
大纲/内容
session_key解密encryptedData获取unionID以及基本信息
微信接口服务
退出登录:携带登录态请求开发者server,server修改redis登录态:若登录时间不足1min,则将value增加一个logout=true,1min后过期,否则删除key。
wx.login()获取code
code校验&获取session_keyappid+appsecret+code
验证登录:redis:GET login_UID_CODE 存在且value中logout=false或不存在logout
2. wx.login获取到重复code仍发至开发者后台,后台通过login_*_CODE获取未过期的key,从中取得userid,完成登录
session_key + openid等
小程序
自定义的登录态存入storage
返回自定义登录态(credential+expire_time)
若短时间内频繁登录,有三种情况:
(注册账户)->userid
0. wx.login获取到新code,走正常流程完成登录
开发者服务器
1. wx.login接口会进入fail回调,前端直接提示登录失败请稍后再试,后台无需处理
Note:1分钟机制是为了在用户正常状态下的频繁登录导致wx.login获取到重复CODE时仍然能够正常登录(code是一次性的,若服务器不存储code及对应session_key,这时就会导致用户无法登录)
返回业务数据
定义登录态:redis: SET K:login_UID_CODEV:session_key+login_time+userid EX 30min
wx.request()发起业务请求携带自定义登录态
wx.request()发送code+encryptedData+iv
验证自定义登录态处理业务
保持登录:用户的每个操作都将延长redis登录态(login time不变)。
0 条评论
回复 删除
下一页