Files
mp-vue/.workbuddy/memory/2026-07-24.md
赵忠林 ad76abea96 feat(passport): 支持多租户登录及密码找回功能
- 新增重置密码接口及参数支持手机号/邮箱找回
- 登录接口支持多租户场景,返回多租户选项供前端选择
- 增加登录状态持久化保存租户和用户信息
- 登录界面新增“忘记密码”链接并实现密码找回页
- 忘记密码页支持邮箱和手机两种找回方式,首3次发送验证码免图形验证码校验
- 登录页短信验证码发送优化,增加发送次数限制和图形验证码弹窗
- 请求拦截器支持跳过租户头注入,适配登录前找回等场景
- 路由表启用忘记密码页面路由
- 国际化新增密码找
2026-07-24 23:07:06 +08:00

23 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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次免图形验证handleSendCodeonLoginBySms 处理 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.2request 拦截器头写法与 guilixu-adminaxios 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通常已具备