feat: 实现邮箱验证码登录功能,支持新用户自动注册并记录登录日志
Build docker and publish / build (20.15.1) (push) Successful in 5m40s
Build docker and publish / build (20.15.1) (push) Successful in 5m40s
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user