web平台接入微信扫码
这 4 个接口分别负责闭环中的一个环节:
GET /auth/wechat/qrcode(Web 调用)
创建一次“电脑登录会话”。
Web 打开登录页时调用,后端生成唯一 sessionId、返回二维码/小程序码,并将会话设为“等待扫码”。二维码里需要携带该 sessionId。
POST /auth/wechat/mini/login(小程序调用)
确认“扫描二维码的是哪个微信用户”,并判断是否需要手机号。
小程序通过 uni.login 获取微信 code,连同 scene 发给后端。后端用 code 换取 openid:
- 已关联平台账号:直接把该
sessionId标记为登录成功,返回LOGIN_SUCCESS。 -
未关联账号:返回
NEED_PHONE,让小程序继续请求手机号授权。 -
POST /auth/wechat/mini/phone(小程序调用)
获取手机号,完成账号关联或注册。
用户同意手机号授权后,小程序拿到 phoneCode 发给后端。后端换取手机号:
- 手机号已有账号:关联当前微信。
- 手机号没有账号:创建账号并关联微信。
完成后后端把对应 sessionId 标记成功,返回 SUCCESS。
GET /auth/wechat/status(Web 调用)
让电脑知道手机端有没有授权完成。
Web 用 sessionId 每 1~2 秒轮询:
WAIT:继续等。SCANNED:手机已打开授权页,等待用户确认。SUCCESS:返回登录token,Web 保存后进入系统。QR_EXPIRED/CANCELLED:停止轮询,提示刷新二维码或重新扫码。