refactor(用户绑定邮箱): 修改设备记录处理逻辑,从删除改为更新归属
All checks were successful
Build docker and publish / build (20.15.1) (push) Successful in 7m7s
All checks were successful
Build docker and publish / build (20.15.1) (push) Successful in 7m7s
将原本删除设备记录并创建新记录的逻辑改为直接更新设备记录的归属用户ID 移除不再需要的旧设备信息获取和创建新设备记录的代码
This commit is contained in:
parent
e02e1d1f37
commit
37cec59460
@ -128,12 +128,12 @@ func (l *BindEmailWithVerificationLogic) BindEmailWithVerification(req *types.Bi
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 获取原设备信息,以保留IP和UserAgent
|
// 获取原设备信息,以保留IP和UserAgent
|
||||||
oldDevice, err := l.svcCtx.UserModel.FindOneDeviceByIdentifier(l.ctx, deviceIdentifier)
|
// oldDevice, err := l.svcCtx.UserModel.FindOneDeviceByIdentifier(l.ctx, deviceIdentifier)
|
||||||
var deviceIP, deviceUA string
|
// var deviceIP, deviceUA string
|
||||||
if err == nil && oldDevice != nil {
|
// if err == nil && oldDevice != nil {
|
||||||
deviceIP = oldDevice.Ip
|
// deviceIP = oldDevice.Ip
|
||||||
deviceUA = oldDevice.UserAgent
|
// deviceUA = oldDevice.UserAgent
|
||||||
}
|
// }
|
||||||
|
|
||||||
l.Infow("邮箱已存在,将设备转移到现有邮箱用户",
|
l.Infow("邮箱已存在,将设备转移到现有邮箱用户",
|
||||||
logger.Field("email", req.Email),
|
logger.Field("email", req.Email),
|
||||||
@ -146,10 +146,17 @@ func (l *BindEmailWithVerificationLogic) BindEmailWithVerification(req *types.Bi
|
|||||||
}
|
}
|
||||||
for _, device := range devices {
|
for _, device := range devices {
|
||||||
// 删除原本的设备记录
|
// 删除原本的设备记录
|
||||||
err = l.svcCtx.UserModel.DeleteDevice(l.ctx, device.Id)
|
// err = l.svcCtx.UserModel.DeleteDevice(l.ctx, device.Id)
|
||||||
|
// if err != nil {
|
||||||
|
// l.Errorw("删除邮箱用户设备记录失败", logger.Field("error", err.Error()), logger.Field("email_user_id", emailUserId))
|
||||||
|
// return nil, errors.Wrapf(xerr.NewErrCode(xerr.DatabaseDeletedError), "删除原本的设备记录失败")
|
||||||
|
// }
|
||||||
|
// 更新 设备 归属
|
||||||
|
device.UserId = emailUserId
|
||||||
|
err = l.svcCtx.UserModel.UpdateDevice(l.ctx, device)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
l.Errorw("删除邮箱用户设备记录失败", logger.Field("error", err.Error()), logger.Field("email_user_id", emailUserId))
|
l.Errorw("更新邮箱用户设备记录失败", logger.Field("error", err.Error()), logger.Field("email_user_id", emailUserId))
|
||||||
return nil, errors.Wrapf(xerr.NewErrCode(xerr.DatabaseDeletedError), "删除原本的设备记录失败")
|
return nil, errors.Wrapf(xerr.NewErrCode(xerr.DatabaseUpdateError), "更新原本的设备记录失败")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 再次更新 user_auth_method : 因为之前 默认 设备登录的时候 创建了一个设备认证数据
|
// 再次更新 user_auth_method : 因为之前 默认 设备登录的时候 创建了一个设备认证数据
|
||||||
@ -166,11 +173,11 @@ func (l *BindEmailWithVerificationLogic) BindEmailWithVerification(req *types.Bi
|
|||||||
return nil, errors.Wrapf(xerr.NewErrCode(xerr.DatabaseDeletedError), "删除用户记录失败")
|
return nil, errors.Wrapf(xerr.NewErrCode(xerr.DatabaseDeletedError), "删除用户记录失败")
|
||||||
}
|
}
|
||||||
|
|
||||||
err = l.createDeviceRecordForEmailUser(emailUserId, deviceIdentifier, deviceIP, deviceUA)
|
// err = l.createDeviceRecordForEmailUser(emailUserId, deviceIdentifier, deviceIP, deviceUA)
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
l.Errorw("创建邮箱用户设备记录失败", logger.Field("error", err.Error()), logger.Field("email_user_id", emailUserId))
|
// l.Errorw("创建邮箱用户设备记录失败", logger.Field("error", err.Error()), logger.Field("email_user_id", emailUserId))
|
||||||
return nil, errors.Wrapf(xerr.NewErrCode(xerr.DatabaseQueryError), "创建邮箱用户设备记录失败")
|
// return nil, errors.Wrapf(xerr.NewErrCode(xerr.DatabaseQueryError), "创建邮箱用户设备记录失败")
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
// 4. 生成新的JWT token
|
// 4. 生成新的JWT token
|
||||||
token, err := l.generateTokenForUser(emailUserId)
|
token, err := l.generateTokenForUser(emailUserId)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user