bindbox-mini/.trae/documents/基于 Swagger 接口实现 Uni-App Vue3 微信登录页.md
2025-11-24 22:37:11 +08:00

3.0 KiB
Raw Blame History

接口梳理App 用户相关)

  • 登录与绑定:
    • POST /api/app/users/weixin/login,请求含 codeinvite_code;响应含 tokenuser_idavatarnicknameinvite_code.trae/documents/基于 Swagger 的 App 用户 API 汇总与 Uni-App 微信登录页面实现方案.md:5-10
    • POST /api/app/users/{user_id}/phone/bind,请求含微信手机号 code;响应为标准成功(.trae/documents/基于 Swagger 的 App 用户 API 汇总与 Uni-App 微信登录页面实现方案.md:11-16
  • 用户资料与地址:
    • PUT /api/app/users/{user_id}(修改头像/昵称,avatarnickname:19-22
    • 地址列表/新增/删除/设默认(:23-27),新增请求含基本地址字段(:25-27
  • 积分与统计:
    • GET /api/app/users/{user_id}/points/balance 响应 balance:31-34
    • GET /api/app/users/{user_id}/stats 响应 coupon_countitem_card_countpoints_balance:35-37
  • 订单与卡券/道具:
    • 订单列表、优惠券、邀请、道具卡与使用记录(:40-48

技术方案

  • 网络层:
    • 方案A推荐复用 alova 客户端与生成器,统一 Authorization 与错误处理(:51
    • 方案B 以 uni.request 封装最小所需接口(登录/绑定/统计),在请求头注入 Bearer token:71-72
  • 平台与配置:
    • baseURL 指向后端 http://127.0.0.1:9991;在微信小程序后台配置合法域名与 HTTPS 证书(:75
  • 状态与路由:
    • pages.json 添加 pages/login/index;登录成功后 uni.reLaunch 到首页;用 pinia 管理 isLoginuserInfopoints:79
  • 错误处理:
    • 按既有分类提示与重试策略覆盖网络错误、超时、404/500、参数错误:83

页面实现Uni-App Vue3

  • 结构Logo/说明、「微信登录」按钮、open-type="getPhoneNumber" 授权按钮、加载与错误提示(:57-58
  • 流程:
    • 触发 uni.login({ provider: 'weixin' }) 获取 code → 调用 POST /api/app/users/weixin/login → 持久化 tokenuser_id:61-62
    • 可选手机号绑定:onGetPhoneNumbercodePOST /api/app/users/{user_id}/phone/bind:63-64
    • 登录后拉取统计与积分余额更新首页(:65-66

交付内容

  • 新增 pages/login/index.vueComposition API含完整登录/绑定流程与错误提示(:91-94
  • 接入并配置网络层(复用 alova 或最小 uni.request 封装)
  • 路由与 pinia 状态的最小接入

验证方法

  • 在开发者工具/真机验证:code 获取、接口返回、token/user_id 存储、后续接口成功(:87-88
  • 输出必要的调试日志(不含敏感信息),观察错误分支与重试入口

执行步骤

  1. 接入 Swagger JSONhttp://127.0.0.1:9991/swagger/v1/swagger.json)同步生成或确认接口(:99-101
  2. 选定网络层方案并落地调用
  3. 新增登录页面与交互逻辑
  4. 调整路由与状态管理
  5. 自测与联调,完成交付