style(auth): 优化auth模块代码规范
范围: src/business/auth/ - register.service.ts: 清理未使用的导入TokenPair,增强userId非空验证 - register.service.spec.ts: 清理未使用的变量apiKeySecurityService
This commit is contained in:
@@ -7,12 +7,13 @@
|
|||||||
* - 测试Zulip账号集成
|
* - 测试Zulip账号集成
|
||||||
*
|
*
|
||||||
* 最近修改:
|
* 最近修改:
|
||||||
|
* - 2026-01-15: 代码规范优化 - 清理未使用的变量apiKeySecurityService (修改者: moyin)
|
||||||
* - 2026-01-12: 代码分离 - 从login.service.spec.ts中分离注册相关测试
|
* - 2026-01-12: 代码分离 - 从login.service.spec.ts中分离注册相关测试
|
||||||
*
|
*
|
||||||
* @author moyin
|
* @author moyin
|
||||||
* @version 1.0.0
|
* @version 1.0.1
|
||||||
* @since 2026-01-12
|
* @since 2026-01-12
|
||||||
* @lastModified 2026-01-12
|
* @lastModified 2026-01-15
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { Test, TestingModule } from '@nestjs/testing';
|
import { Test, TestingModule } from '@nestjs/testing';
|
||||||
@@ -25,7 +26,6 @@ describe('RegisterService', () => {
|
|||||||
let service: RegisterService;
|
let service: RegisterService;
|
||||||
let loginCoreService: jest.Mocked<LoginCoreService>;
|
let loginCoreService: jest.Mocked<LoginCoreService>;
|
||||||
let zulipAccountService: jest.Mocked<ZulipAccountService>;
|
let zulipAccountService: jest.Mocked<ZulipAccountService>;
|
||||||
let apiKeySecurityService: jest.Mocked<ApiKeySecurityService>;
|
|
||||||
|
|
||||||
const mockUser = {
|
const mockUser = {
|
||||||
id: BigInt(1),
|
id: BigInt(1),
|
||||||
@@ -96,7 +96,6 @@ describe('RegisterService', () => {
|
|||||||
service = module.get<RegisterService>(RegisterService);
|
service = module.get<RegisterService>(RegisterService);
|
||||||
loginCoreService = module.get(LoginCoreService);
|
loginCoreService = module.get(LoginCoreService);
|
||||||
zulipAccountService = module.get(ZulipAccountService);
|
zulipAccountService = module.get(ZulipAccountService);
|
||||||
apiKeySecurityService = module.get(ApiKeySecurityService);
|
|
||||||
|
|
||||||
// 设置默认的mock返回值
|
// 设置默认的mock返回值
|
||||||
const mockTokenPair = {
|
const mockTokenPair = {
|
||||||
|
|||||||
@@ -14,16 +14,17 @@
|
|||||||
* - 处理注册相关的邮箱验证和Zulip集成
|
* - 处理注册相关的邮箱验证和Zulip集成
|
||||||
*
|
*
|
||||||
* 最近修改:
|
* 最近修改:
|
||||||
|
* - 2026-01-15: 代码规范优化 - 清理未使用的导入TokenPair,增强userId非空验证 (修改者: moyin)
|
||||||
* - 2026-01-12: 代码分离 - 从login.service.ts中分离注册相关业务逻辑
|
* - 2026-01-12: 代码分离 - 从login.service.ts中分离注册相关业务逻辑
|
||||||
*
|
*
|
||||||
* @author moyin
|
* @author moyin
|
||||||
* @version 1.0.0
|
* @version 1.0.1
|
||||||
* @since 2026-01-12
|
* @since 2026-01-12
|
||||||
* @lastModified 2026-01-12
|
* @lastModified 2026-01-15
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { Injectable, Logger, Inject } from '@nestjs/common';
|
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 { Users } from '../../core/db/users/users.entity';
|
||||||
import { ZulipAccountService } from '../../core/zulip_core/services/zulip_account.service';
|
import { ZulipAccountService } from '../../core/zulip_core/services/zulip_account.service';
|
||||||
import { ApiKeySecurityService } from '../../core/zulip_core/services/api_key_security.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账号创建/绑定失败');
|
throw new Error(createResult.error || 'Zulip账号创建/绑定失败');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 验证必须获取到 userId(数据库字段 NOT NULL)
|
||||||
|
if (createResult.userId === undefined || createResult.userId === null) {
|
||||||
|
throw new Error('Zulip账号创建成功但未能获取用户ID,无法建立关联');
|
||||||
|
}
|
||||||
|
|
||||||
// 3. 处理API Key
|
// 3. 处理API Key
|
||||||
let finalApiKey = createResult.apiKey;
|
let finalApiKey = createResult.apiKey;
|
||||||
|
|
||||||
@@ -520,7 +526,7 @@ export class RegisterService {
|
|||||||
// 5. 在数据库中创建关联记录
|
// 5. 在数据库中创建关联记录
|
||||||
await this.zulipAccountsService.create({
|
await this.zulipAccountsService.create({
|
||||||
gameUserId: gameUser.id.toString(),
|
gameUserId: gameUser.id.toString(),
|
||||||
zulipUserId: createResult.userId!,
|
zulipUserId: createResult.userId, // 已在上面验证不为 undefined
|
||||||
zulipEmail: createResult.email!,
|
zulipEmail: createResult.email!,
|
||||||
zulipFullName: gameUser.nickname,
|
zulipFullName: gameUser.nickname,
|
||||||
zulipApiKeyEncrypted: finalApiKey ? 'stored_in_redis' : '',
|
zulipApiKeyEncrypted: finalApiKey ? 'stored_in_redis' : '',
|
||||||
@@ -531,7 +537,7 @@ export class RegisterService {
|
|||||||
if (finalApiKey) {
|
if (finalApiKey) {
|
||||||
await this.zulipAccountService.linkGameAccount(
|
await this.zulipAccountService.linkGameAccount(
|
||||||
gameUser.id.toString(),
|
gameUser.id.toString(),
|
||||||
createResult.userId!,
|
createResult.userId, // 已在上面验证不为 undefined
|
||||||
createResult.email!,
|
createResult.email!,
|
||||||
finalApiKey
|
finalApiKey
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user