微信小程序登录
这篇解决什么
用户端用微信小程序一键登录:拿手机号、建或找回会员、绑定 openid、发用户端 Token。读完能对上 POST /app-api/member/auth/weixin-mini-app-login,以及社交客户端必须配「会员 + 微信小程序」。
默认端口 48080。先完成 会员功能开启。社交表和客户端字段见 三方登录。
示意图:小程序登录在会员模块。换手机号、换 openid 都走 system 的社交 API。
从哪接
| 名称 | 说明 | 仓库路径 |
|---|---|---|
| 用户端认证 | @RequestMapping("/member/auth") | ruoyi-office/yudao-module-member/.../controller/app/auth/AppAuthController.java |
| 一键登录 | POST /weixin-mini-app-login | 同上 |
| 实现 | 先手机号再建用户 | MemberAuthServiceImpl#weixinMiniAppLogin |
| 社交类型 | 34 / WECHAT_MINI_PROGRAM | SocialTypeEnum |
| 终端 | WECHAT_MINI_PROGRAM | TerminalEnum |
| 绑定 | /member/social-user | AppSocialUserController |
| 小程序码 | POST /wxa-qrcode | 同上 |
| 社交客户端 | 系统管理 → 三方应用 | ruoyi-office-vben/apps/web-antd/src/views/system/social/client/ |
官方菜单:三方登录目录 2447,三方应用 2448(组件 system/social/client/index.vue),三方用户 2453。会员中心没有单独的「小程序登录」页。

本系统截图:系统管理 → 三方应用。当前租户还没有客户端。小程序登录要在这里建一条:用户类型=会员,社交类型=微信小程序。
请求体要两段 code:phoneCode 换手机号,loginCode 换 openid。state 可空,绑定仍会带上。
示意图:按 MemberAuthServiceImpl#weixinMiniAppLogin 的真实顺序。
用户类型不要配成管理端
system_social_client 按 userType + socialType 唯一。管理端扫码用 ADMIN。小程序登录必须是 MEMBER。配错了会换到另一套 appId,openid 也对不上支付。
手机号已存在就直接用,不会再建一条。新用户默认启用,昵称空时写成「用户」加 6 位数字。禁用会员会记登录日志并抛 AUTH_LOGIN_USER_DISABLED。
返回里的 openid 给 微信小程序支付 用。小程序支付渠道 wx_lite 的 appId 必须和这条社交客户端一致。
已登录再绑、解绑走 POST /app-api/member/social-user/bind 和 DELETE /unbind。订阅消息模板列表是 GET /get-subscribe-template-list。
