feat: 补齐邮箱核验的忘记密码与修改密码 - #810
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Codecov Report❌ Patch coverage is @@ Coverage Diff @@
## main #810 +/- ##
==========================================
- Coverage 87.07% 87.06% -0.01%
==========================================
Files 288 288
Lines 21520 21679 +159
Branches 3294 3321 +27
==========================================
+ Hits 18738 18875 +137
- Misses 1856 1873 +17
- Partials 926 931 +5
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 1 file with indirect coverage changes 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
已审阅固定提交 b9878d64beea95c5362351d1d1fe82ae645b1412...1140ed7129015ada4af97dae7c5198bf082bf839 的完整变更,覆盖后端邮箱验证码、密码重置、会话版本失效、刷新令牌轮换、鉴权中间件、迁移,以及前端认证和账号安全流程。调用方、数据库锁、验证码消费、邮箱绑定和 OpenAPI 合同保持一致,未发现达到报告阈值的可操作回归。
验证:Python 变更文件语法检查通过;本地无法运行 pytest/Vitest/TypeScript,因为环境缺少 pytest、前端 node_modules/可执行依赖。
|
现在可以先使用这个ORM迁移机制。 |
xiaocheny214
left a comment
There was a problem hiding this comment.
权威仍是 ORM:create_all 建新表,加列走已有 schema_sync,删列不自动做。可以使用这个机制来做。
|
合并了,看看是不是要发版本、数据库迁移、部署; |
这个合并了,就要准备做数据库迁移机制了。 |
现在数据不多,赶紧做吧 |
速速合并,迁移脚本不是已经写好了吗 |
那你去把这个项目中的ORM全部给删除,然后替换成这个迁移文件吧。后续部署的时候,你来人工先在数据库上跑一遍这个sql文件,又或者你嫌麻烦你再写一个脚本去做自动化去吧。 |
项目中ORM机制和脚本同时存在。 |
|
@xiaocheny214 已在 PR 描述中补充 ORM 与迁移脚本的职责边界。两者需要同时存在:ORM 模型负责新版进程运行时的数据访问,幂等 SQL 负责在部署前升级已有生产库; |
改动内容
auth_version,改密后现有会话立即失效。FOR UPDATE串行化,避免并发改密丢失会话版本。ORM 与迁移脚本的关系
迁移 SQL 与 ORM 同时保留,职责不同,不互相替代:
User.auth_versionORM 字段负责新版 Backend 与 Worker 运行时读取、比较和更新会话版本。20260827_add_user_auth_version.sql负责在部署新版进程前,为已有生产数据库补齐字段。Base.metadata.create_all只能创建缺失的表,不能给已有windup_user表补列,因此不能代替该迁移 SQL。部署前置
合并后部署时,必须先执行:
确认
windup_user.auth_version已存在后,再切换新版 Backend 与 Worker。本 PR 未修改或部署线上服务器。验证
Closes #809