微信登录
后端支持三种微信登录形态:扫码、小程序、公众号 H5。移动端实际走的是小程序与公众号 H5;扫码主要用于 PC 端,不在 UniApp 流程里展开。
配置入口:管理端 渠道 下的公众号、小程序、开放平台(扫码依赖开放平台网站应用)。
微信小程序
静默登录组件
d-wechat-login:用户点击后 uni.login 取 code,再请求 POST /api/auth/wechat-login,成功则拿到会员 token。
登录页快捷登录
modules/login/pages/login(仅小程序编译分支):
- 用户点微信图标 →
POST /api/auth/wechat-quick-login(code)。 - 若返回已登录:写入 token,进入首页。
- 若返回需绑手机:展示「授权手机号完成注册」按钮,再调
POST /api/auth/wechat-bindphone(temp_token+phone_code)。
需在微信公众平台开通相应能力,并在管理端「渠道 → 小程序」配好应用凭证。
公众号 H5
H5 且在微信内置浏览器时,App.vue 会调用 initWechatOAuth(utils/wechat-oauth.ts):
- 本地尚无公众号 openid 时,请求
GET /api/wechat/oauth-url(redirect_url、scope: snsapi_base),跳转微信授权。 - 回调 URL 带
code→POST /api/auth/wechat-h5-login。 - 已有会员:直接写 token;新用户:标记待绑定并跳转登录页。
- 用户用手机号等方式登录成功后,可再调
POST /api/user/bind-oa-openid把公众号 openid 绑到账号(便于后续公众号内支付等)。
需在管理端「渠道 → 公众号」配置,并保证授权回调域名与 H5 部署域名一致。
与其它登录方式
同一登录页还提供密码登录(POST /api/auth/login)与短信登录(POST /api/auth/sms-login + POST /api/common/sms-code)。微信能力与手机号能力可并存;新用户走快捷登录时按后端返回决定是否必须绑手机。