酱茄小程序登录流程深度解析:微信login3、Token校验与手机号绑定完整指南

📅 2026/8/27 16:08:47
酱茄小程序登录流程深度解析:微信login3、Token校验与手机号绑定完整指南
酱茄小程序登录流程深度解析微信login3、Token校验与手机号绑定完整指南【免费下载链接】jiangqie_kafei酱茄小程序开源版基于WordPress的微信小程序适用于博客小程序和新闻资讯小程序。项目地址: https://gitcode.com/gh_mirrors/ji/jiangqie_kafei酱茄小程序开源版是基于 WordPress 的微信小程序方案适用于博客小程序和新闻资讯小程序。本文带你深入拆解它的登录流程实现原理从微信login3接口换取 openid、Token 生成与校验机制到手机号绑定的 AES 解密原理新手也能快速看懂这套前后端联动的登录架构。一、登录流程全景图酱茄小程序的登录流程可以概括为5 步小程序端调用uni.login()获取临时授权code前端将code提交给 WordPress 后端的user/login3接口后端用code换取用户的openid微信官方 jscode2session后端创建或匹配 WordPress 用户生成并返回token前端存储token后续所有请求自动携带后端据此校验登录态核心源码位置后端登录接口api_uni/jiangqie-api/public/rest/class-jiangqie-api-user-controller.php前端登录页面client_uni/pages/login/login.vue前端 Token 存取client_uni/utils/auth.js二、第一步获取微信授权 code打开登录页时前端在onLoad生命周期里就提前调用了uni.login()拿到微信下发的临时code并缓存到页面变量中client_uni/pages/login/login.vue onLoad → uni.login({ success: res { this.code res.code } })点击「确定」后login()方法将code、nickname如微信用户、channelweixin / qq / baidu一起 POST 到接口client_uni/utils/api.js JIANGQIE_USER_LOGIN: https://域名/wp-json/jiangqie/v1/user/login3可以看到接口名就叫login3它是酱茄小程序登录流程的核心入口。三、第二步login3 接口用 code 换 openid后端user_login3()方法见class-jiangqie-api-user-controller.php第 98 行按channel参数分发到不同平台weixin→ 调用微信https://api.weixin.qq.com/sns/jscode2sessionqq→ 调用 QQ 小程序jscode2sessionbaidu→ 调用百度jscode2sessionkey这一步依赖后台配置好的Appid 和 AppSecret存于 WordPress 选项表。如果换取失败接口会返回请检查前后端配置信息~这也是最常见的登录失败原因。四、自动注册用 openid 当用户名拿到openid后后端以它作为user_login去 WordPress 用户表里查找已存在直接复用该用户 ID不存在调用wp_insert_user()自动注册一个新用户角色为 subscriber并返回first: 1标记前端收到first标记后会跳转到「完善资料」页client_uni/pages/verify/verify.vue让用户设置头像和昵称实现免注册的静默登录体验。同时后端会把以下信息写入用户元数据usermeta表字段说明jq_channel登录渠道weixin/qq/baidujq_session_key微信会话密钥手机号解密要用jq_unionid微信开放平台 unionid如有jiangqie_token酱茄自定义登录 Token五、Token 校验机制详解酱茄小程序没有使用WordPress 自带的 Cookie 会话体系而是采用自研的 Token 方案生成generate_token()用md5(uniqid())生成 32 位随机串写入jiangqie_token用户元数据。携带前端封装的网络请求层client_uni/utils/rest.js在每次请求前自动执行data.token Auth.getToken()Token 从本地存储JQ_USER_KEY中读取。校验后端基类check_login()class-jiangqie-api-base-controller.php第 100 行直接查库SELECT user_id FROM wp_usermeta WHERE meta_keyjiangqie_token AND meta_value提交的token查到user_id即登录成功查不到则返回错误码-1。智能跳转前端rest.js对错误码做了统一拦截——code -1未登录 → 自动跳转登录页code -11已登录但未绑定手机号 → 自动跳转手机号绑定页这套机制让登录态失效 → 重新登录全程无需用户手动操作。六、手机号绑定的实现原理当后台开启评论需绑定手机号开关时发评论前会校验jiangqie_mobile元数据为空则返回-11前端弹出绑定页login.vue的typemobile模式。绑定流程涉及微信的AES 解密用户点击「绑定手机号」按钮open-typegetPhoneNumber微信回调返回encryptedData加密数据和iv初始向量前端连同code一起提交到user/set_mobile接口后端先用code换取最新的session_key用session_key对encryptedData执行openssl_decryptAES-128-CBC解密得到phoneNumber解密结果中的watermark.appid会与后台 Appid 比对防止数据伪造通过后写入用户元数据这个code session_key AES的组合是微信隐私数据接口的标准安全模式密钥不落前端、数据实时校验、Appid 双重验证。七、新手常见问题Q1登录提示请检查前后端配置信息检查后台「酱茄设置 → 基础设置」中 Appid/AppSecret 是否与小程序后台一致见上图配置项。Q2微信和 QQ 登录的账号会重复注册吗不会。不同渠道的 openid 不同但同一微信用户在多端复用 openid用户数据完全同步在 WordPress 中。Q3Token 会过期吗Token 长期有效直到注销user/logout接口会删除用户及关联的评论、点赞、收藏记录或被重新登录时覆盖。八、总结酱茄小程序的登录体系设计简洁实用以openid 为唯一标识实现免注册登录以自研 Token替代传统会话机制适配小程序无 Cookie 环境再以微信官方 AES 解密保障手机号等隐私数据的安全。整套方案前后端代码量小、职责清晰是学习 WordPress uni-app 小程序登录架构的优秀参考。【免费下载链接】jiangqie_kafei酱茄小程序开源版基于WordPress的微信小程序适用于博客小程序和新闻资讯小程序。项目地址: https://gitcode.com/gh_mirrors/ji/jiangqie_kafei创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考