feat(auth): 新增微信小程序登录(绑定策略:首次用学号密码绑定)

- 新增 POST /api/auth/wechat/login:用 wx.login 的 code 换 openid;已绑定直接签发 JWT 返回,未绑定返回 bindToken
- bind.post.ts:支持从请求体读取 bindToken(小程序不便维护 cookie),绑定成功后返回 token,供 Authorization: Bearer 使用
- auth-route-policy.ts:把新接口登记进免鉴权白名单,否则会被鉴权中间件拦截
- .env.example:新增 WECHAT_MINI_APPID / WECHAT_MINI_SECRET
This commit is contained in:
2026-09-26 13:57:24 +08:00
parent a140ce8621
commit 12dac95e1b
4 changed files with 178 additions and 2 deletions
+7
View File
@@ -114,3 +114,10 @@ AGGREGATE_OAUTH_APP_KEY=
AGGREGATE_OAUTH_LOGIN_TYPE=wx
# 聚合登录服务基地址(https,不带 /oauth/... 路径),例如:https://www.auxx.cn
AGGREGATE_OAUTH_ENDPOINT=
# 微信小程序登录(可选)
# 用于小程序端 wx.login() 的 code 换取 openid,对应接口 POST /api/auth/wechat/login
# AppID / AppSecret 在微信公众平台「开发管理 → 开发设置 → 开发者ID」中获取
# 注意:这与上方聚合登录的 wx 通道不是一回事——小程序 openid 按 AppID 维度生成,两者不通用
WECHAT_MINI_APPID=
WECHAT_MINI_SECRET=