Appearance
pages/login — 手机号登录
src/pages/login/index.vue· 513 行 · Vue3 setup · 调用 API:oauth
职责
C 端唯一登录入口:手机号 + 短信验证码 + 图形验证码 + 协议勾选。登录成功按 isNewUser 分流(true → 弹三页向导;false → 进首页)。
数据与依赖
| 项 | 值 |
|---|---|
| API | getCaptcha / sendSmsCode / smsLogin(oauth) |
| utils | device(clientId 生成)/ storage(token/user 持久化)/ validUtil(手机号校验)/ ToastUtil |
| 协议 | 《用户协议》《隐私协议》→ navigateTo pages/agreement(勾选后 agreementAccepted: true) |
关键逻辑
- 进入页面自动拉图形验证码(
captchaId+ 图);请求失败显示转圈(无自动重试 — 重启 App 或重进刷新) - 「获取验证码」→ 校验手机号 + 图形码 → 58s 倒计时;图形码一次性
- 登录成功:
storage.token/refreshToken/tokenExpires/user四写 →isNewUser === true时向导弹窗(v-modelqm-profile-setup-popup)→ 否则 reLaunch 首页 - 401 链:本页请求 auth:'none',不走 rotate
关联
- 未注册手机号验证后自动注册(服务端语义,前端无独立注册页)
- 向导弹窗行为详见 components/qm-profile-setup-popup
变更记录(git)
| 日期 | 作者 | 说明 |
|---|---|---|
| 2026-09-17 | 外星动物 | feat: C 端协议页 + 登录页协议跳转 + personal-form 接真 API |
| 2026-09-17 | inkforge-deploy | (另有 3 次登录链迭代 — 详见 git log) |
生成:
scripts/gen_uniapp_docs.py(重跑刷新)