All checks were successful
Build docker and publish / build (20.15.1) (push) Successful in 6m39s
refactor(设备绑定): 重构设备所有权转移逻辑以保持设备ID稳定 docs: 添加设备绑定与踢出后重登录的回归测试文档 fix(设备登录): 修复设备不存在时空指针崩溃问题
27 lines
1.1 KiB
Markdown
27 lines
1.1 KiB
Markdown
用例:设备绑定与踢出后重登录,设备ID保持不变
|
||
|
||
前置条件
|
||
- 清空相关用户与设备数据;保证 `user_device.identifier` 唯一
|
||
|
||
场景步骤
|
||
- 设备A首次登录,生成设备记录,记下其 `user_device.id`(记为A_id)
|
||
- 设备A绑定邮箱 `101@qq.com`
|
||
- 设备B首次登录,生成设备记录,记下其 `user_device.id`(记为B_id)
|
||
- 设备B绑定同一邮箱 `101@qq.com`
|
||
- 设备A在后台踢出设备B(`KickOfflineByUserDeviceLogic`)
|
||
- 设备B重新登录
|
||
|
||
断言
|
||
- 设备B的 `identifier` 未变化
|
||
- 设备B在绑定到邮箱用户后,其 `user_device.id` 与绑定前的 B_id 保持一致
|
||
- 踢出与重登录后,设备B的 `user_device.id` 仍保持一致
|
||
|
||
关键接口与文件
|
||
- 设备登录:`internal/logic/auth/deviceLoginLogic.go`
|
||
- 邮箱绑定:`internal/logic/public/user/bindEmailWithVerificationLogic.go`
|
||
- 后台踢下线:`internal/logic/admin/user/kickOfflineByUserDeviceLogic.go`
|
||
- 设备管理器:`pkg/device/device.go`,回调:`internal/svc/devce.go`
|
||
|
||
预期结果
|
||
- 全流程不再删除并重建设备记录,设备主键ID稳定;仅迁移所有权。
|