feat: 实现邮箱验证码登录功能,支持新用户自动注册并记录登录日志
Build docker and publish / build (20.15.1) (push) Successful in 5m40s

This commit is contained in:
2025-12-31 00:55:11 -08:00
parent fd185bcfe1
commit 4ffccd5ad8
9 changed files with 466 additions and 165 deletions
@@ -54,9 +54,21 @@ func (l *DeleteUserDeviceLogic) DeleteUserDevice(req *types.DeleteUserDeivceRequ
_ = l.svcCtx.Redis.ZRem(ctx, sessionsKey, sessionId).Err()
}
// 最后删除数据库记录
if err := l.svcCtx.UserModel.DeleteDevice(l.ctx, req.Id); err != nil {
return errors.Wrapf(xerr.NewErrCode(xerr.DatabaseDeletedError), "delete user error: %v", err.Error())
// 使用事务同时删除设备记录和关联的认证方式
err := l.svcCtx.UserModel.Transaction(l.ctx, func(db *gorm.DB) error {
// 删除设备记录
if err := l.svcCtx.UserModel.DeleteDevice(l.ctx, req.Id, db); err != nil {
return err
}
// 删除关联的 AuthMethod (type="device", identifier=device.Identifier)
if err := l.svcCtx.UserModel.DeleteUserAuthMethodByIdentifier(l.ctx, device.UserId, "device", device.Identifier, db); err != nil {
return err
}
return nil
})
if err != nil {
return errors.Wrapf(xerr.NewErrCode(xerr.DatabaseDeletedError), "delete user device transaction error: %v", err.Error())
}
return nil
}