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

2.2 KiB
Raw Permalink Blame History

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:新增 TenantOptionLoginOutcomeLoginResult 增加 tenants?LoginParam 增加 smsCode?
  • src/api/passport/login/index.ts:新增 saveLoginStateloginBySelectTenantsendSmsCaptchaByAdminsendEmailCaptchaloginBySuperAdminSms 改为返回 LoginOutcome(多租户 selectTenant / 单租户 ok
  • src/utils/request.ts:请求拦截器支持 X-Tenant-Skip(适配 axios 0.27 的 config.headers.common 风格),登录前找回场景跳过租户头注入避免串租户。
  • src/api/layout/index.ts + model/index.ts:新增 resetPasswordPOST /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通常已具备