- 新增重置密码接口及参数支持手机号/邮箱找回 - 登录接口支持多租户场景,返回多租户选项供前端选择 - 增加登录状态持久化保存租户和用户信息 - 登录界面新增“忘记密码”链接并实现密码找回页 - 忘记密码页支持邮箱和手机两种找回方式,首3次发送验证码免图形验证码校验 - 登录页短信验证码发送优化,增加发送次数限制和图形验证码弹窗 - 请求拦截器支持跳过租户头注入,适配登录前找回等场景 - 路由表启用忘记密码页面路由 - 国际化新增密码找
23 lines
2.2 KiB
Markdown
23 lines
2.2 KiB
Markdown
# 2026-07-24 工作记录
|
||
|
||
## 从 guilixu-admin 复制登录模块到 mp-vue
|
||
mp-vue 是 Vue3 + Ant Design Vue + ele-admin-pro 模板项目,其登录模块是 guilixu-admin 改造前的旧版。本次把 guilixu-admin 已验证的登录增强功能完整移植过来。
|
||
|
||
### 新增/修改文件
|
||
- `src/views/passport/forget/index.vue`(新建):忘记密码页,邮箱/手机两种找回,前3次免图形验证码,密码强度校验,调用 resetPassword。
|
||
- `src/api/passport/login/model/index.ts`:新增 `TenantOption`、`LoginOutcome`;`LoginResult` 增加 `tenants?`;`LoginParam` 增加 `smsCode?`。
|
||
- `src/api/passport/login/index.ts`:新增 `saveLoginState`、`loginBySelectTenant`、`sendSmsCaptchaByAdmin`、`sendEmailCaptcha`;`loginBySuperAdminSms` 改为返回 `LoginOutcome`(多租户 selectTenant / 单租户 ok)。
|
||
- `src/utils/request.ts`:请求拦截器支持 `X-Tenant-Skip`(适配 axios 0.27 的 `config.headers.common` 风格),登录前找回场景跳过租户头注入避免串租户。
|
||
- `src/api/layout/index.ts` + `model/index.ts`:新增 `resetPassword`(POST /resetPassword,带 X-Tenant-Skip 头)与 `ResetPasswordParam`。
|
||
- `src/views/passport/login/index.vue`:发送验证码前3次免图形验证(handleSendCode);onLoginBySms 处理 LoginOutcome 多租户选择;新增选择租户弹窗;账号登录增加"忘记密码"链接跳 /forget。
|
||
- `src/router/routes.ts`:启用 /forget 路由。
|
||
- `src/i18n/lang/zh_CN/login.ts` / `en/login.ts`:新增 forgetPage 命名空间。
|
||
|
||
### 验证
|
||
- `vue-tsc`:本次改动文件无类型错误(项目本身存在大量与本次无关的 JSX 解析历史错误)。
|
||
- `vite build --outDir dist-verify-mp`:编译打包成功,forget 页 chunk 已生成,无 error/fail。临时产物已移至 /tmp。
|
||
|
||
### 注意点
|
||
- mp-vue 用 axios 0.27.2,request 拦截器头写法与 guilixu-admin(axios 1.x)不同(用 `config.headers.common[...]`),X-Tenant-Skip 判断同时兼容 `config.headers['X-Tenant-Skip']` 与 `config.headers.common['X-Tenant-Skip']`。
|
||
- 后端接口 /sendEmailCaptcha、/sendSmsCaptchaByAdmin、/resetPassword、/loginBySelectTenant 需 guilixu-java 已实现(与 website-admin 同源 server.websoft.top,通常已具备)。
|