返回 Bug 清单
BUG-0365project-29中已修复backend-logic

UC 绑定冲突直接报错 —— 正确语义是先解绑旧账户再绑新账户

发现:2026-10-01验证:2026-10-09置信度:90%

症状

用户换绑第三方登录时收到生硬的唯一约束错误,业务上无法自助换绑。

根因

把数据库约束冲突直接透传为失败,没有实现『换绑 = 旧绑定解绑 + 新绑定建立』的组合业务语义(以及它的安全边界)。

修复方案

1) 冲突分支先校验请求方身份,确认有权限后:同事务先解绑旧账户、再绑到新账户; 2) 解绑动作写审计日志(谁在何时解绑了哪个账户的绑定); 3) 若业务不允许抢绑,保持报错但返回结构化错误码与可操作提示。

检测命令

grep -rn 'UNIQUE constraint\|duplicate key' <绑定接口日志>;核对冲突分支处理逻辑

错误签名

第三方身份绑定接口命中唯一约束冲突即抛错,未处理『该身份已绑在别的账户上』的业务语义

技术信息

来源项目

project-29

标签

account-binding, unique-constraint, business-semantic, audit-log