# 手机号授权登录修复概述 ## 修复内容 1. **隐私协议授权流程修复**(`src/app.tsx`) - 原代码在 `onNeedPrivacyAuthorization` 中直接 `resolve({ event: 'agree' })`,在基础库 3.16.1+ 下无法通过微信校验。 - 新增 `src/components/PrivacyModal`,使用原生 Button 的 `open-type="agreePrivacyAuthorization"` 触发真正的隐私授权;`Taro.showModal` 的按钮无法被微信识别。 2. **登录/注册页预检隐私协议** - `src/passport/login.tsx` 和 `src/passport/register.tsx` 在 `useDidShow` 中调用 `ensurePrivacyAuthorized()`,避免用户点击授权按钮时因隐私协议未授权而失败。 3. **统一接口调用** - 登录/注册页统一使用 `request.post` + `SERVER_API_URL` 调用 `/wx-login/loginByMpWxPhone`。 - 修复 `register.tsx` 原本错误使用 `https://shop-api.websoft.top` 的问题。 4. **顺手修复构建错误** - `src/passport/pay/index.tsx` 引用了不存在的 `@/api/passport/wx-login`,改为使用 `@/api/layout` 中的 `getWxOpenId` / `loginByOpenId`。 ## 验证 `npx taro build --type weapp` 构建成功。 ## 需要你确认的后台配置 - 小程序管理后台 → 设置 → 第三方设置 → 用户隐私保护指引 → 添加「开发者收集你的手机号」声明。 - 确认小程序已开通「手机号快速验证组件」能力,且调用额度充足。 ## 测试前清理 由于之前 `Taro.showModal` 的授权无效,微信可能已缓存该状态。重新上传后请先在开发者工具或真机中清理小程序缓存,再重新进入登录页,触发新的 PrivacyModal。