From 9f4d291619cc30156d1b965ca86ce5b729fb274b Mon Sep 17 00:00:00 2001 From: moyin <244344649@qq.com> Date: Thu, 15 Jan 2026 14:17:38 +0800 Subject: [PATCH] =?UTF-8?q?style(auth):=20=E4=BC=98=E5=8C=96auth=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E4=BB=A3=E7=A0=81=E8=A7=84=E8=8C=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 范围: src/business/auth/ - register.service.ts: 清理未使用的导入TokenPair,增强userId非空验证 - register.service.spec.ts: 清理未使用的变量apiKeySecurityService --- src/business/auth/register.service.spec.ts | 7 +++---- src/business/auth/register.service.ts | 16 +++++++++++----- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/business/auth/register.service.spec.ts b/src/business/auth/register.service.spec.ts index 9124237..8010d9b 100644 --- a/src/business/auth/register.service.spec.ts +++ b/src/business/auth/register.service.spec.ts @@ -7,12 +7,13 @@ * - 测试Zulip账号集成 * * 最近修改: + * - 2026-01-15: 代码规范优化 - 清理未使用的变量apiKeySecurityService (修改者: moyin) * - 2026-01-12: 代码分离 - 从login.service.spec.ts中分离注册相关测试 * * @author moyin - * @version 1.0.0 + * @version 1.0.1 * @since 2026-01-12 - * @lastModified 2026-01-12 + * @lastModified 2026-01-15 */ import { Test, TestingModule } from '@nestjs/testing'; @@ -25,7 +26,6 @@ describe('RegisterService', () => { let service: RegisterService; let loginCoreService: jest.Mocked; let zulipAccountService: jest.Mocked; - let apiKeySecurityService: jest.Mocked; const mockUser = { id: BigInt(1), @@ -96,7 +96,6 @@ describe('RegisterService', () => { service = module.get(RegisterService); loginCoreService = module.get(LoginCoreService); zulipAccountService = module.get(ZulipAccountService); - apiKeySecurityService = module.get(ApiKeySecurityService); // 设置默认的mock返回值 const mockTokenPair = { diff --git a/src/business/auth/register.service.ts b/src/business/auth/register.service.ts index 78fbf43..1e88f27 100644 --- a/src/business/auth/register.service.ts +++ b/src/business/auth/register.service.ts @@ -14,16 +14,17 @@ * - 处理注册相关的邮箱验证和Zulip集成 * * 最近修改: + * - 2026-01-15: 代码规范优化 - 清理未使用的导入TokenPair,增强userId非空验证 (修改者: moyin) * - 2026-01-12: 代码分离 - 从login.service.ts中分离注册相关业务逻辑 * * @author moyin - * @version 1.0.0 + * @version 1.0.1 * @since 2026-01-12 - * @lastModified 2026-01-12 + * @lastModified 2026-01-15 */ import { Injectable, Logger, Inject } from '@nestjs/common'; -import { LoginCoreService, RegisterRequest, TokenPair } from '../../core/login_core/login_core.service'; +import { LoginCoreService, RegisterRequest } from '../../core/login_core/login_core.service'; import { Users } from '../../core/db/users/users.entity'; import { ZulipAccountService } from '../../core/zulip_core/services/zulip_account.service'; import { ApiKeySecurityService } from '../../core/zulip_core/services/api_key_security.service'; @@ -487,6 +488,11 @@ export class RegisterService { throw new Error(createResult.error || 'Zulip账号创建/绑定失败'); } + // 验证必须获取到 userId(数据库字段 NOT NULL) + if (createResult.userId === undefined || createResult.userId === null) { + throw new Error('Zulip账号创建成功但未能获取用户ID,无法建立关联'); + } + // 3. 处理API Key let finalApiKey = createResult.apiKey; @@ -520,7 +526,7 @@ export class RegisterService { // 5. 在数据库中创建关联记录 await this.zulipAccountsService.create({ gameUserId: gameUser.id.toString(), - zulipUserId: createResult.userId!, + zulipUserId: createResult.userId, // 已在上面验证不为 undefined zulipEmail: createResult.email!, zulipFullName: gameUser.nickname, zulipApiKeyEncrypted: finalApiKey ? 'stored_in_redis' : '', @@ -531,7 +537,7 @@ export class RegisterService { if (finalApiKey) { await this.zulipAccountService.linkGameAccount( gameUser.id.toString(), - createResult.userId!, + createResult.userId, // 已在上面验证不为 undefined createResult.email!, finalApiKey );