diff --git a/src/business/login/login.controller.ts b/src/business/login/login.controller.ts index 7059243..ba16f86 100644 --- a/src/business/login/login.controller.ts +++ b/src/business/login/login.controller.ts @@ -343,4 +343,23 @@ export class LoginController { async resendEmailVerification(@Body() sendEmailVerificationDto: SendEmailVerificationDto): Promise> { return await this.loginService.resendEmailVerification(sendEmailVerificationDto.email); } + + /** + * 调试验证码信息 + * 仅用于开发和调试 + * + * @param sendEmailVerificationDto 邮箱信息 + * @returns 验证码调试信息 + */ + @ApiOperation({ + summary: '调试验证码信息', + description: '获取验证码的详细调试信息(仅开发环境)' + }) + @ApiBody({ type: SendEmailVerificationDto }) + @Post('debug-verification-code') + @HttpCode(HttpStatus.OK) + @UsePipes(new ValidationPipe({ transform: true })) + async debugVerificationCode(@Body() sendEmailVerificationDto: SendEmailVerificationDto): Promise { + return await this.loginService.debugVerificationCode(sendEmailVerificationDto.email); + } } \ No newline at end of file diff --git a/src/business/login/login.service.ts b/src/business/login/login.service.ts index dcc1ad0..f17b838 100644 --- a/src/business/login/login.service.ts +++ b/src/business/login/login.service.ts @@ -427,4 +427,31 @@ export class LoginService { // 简单的Base64编码(实际应用中应使用JWT) return Buffer.from(JSON.stringify(payload)).toString('base64'); } + /** + * 调试验证码信息 + * + * @param email 邮箱地址 + * @returns 调试信息 + */ + async debugVerificationCode(email: string): Promise { + try { + this.logger.log(`调试验证码信息: ${email}`); + + const debugInfo = await this.loginCoreService.debugVerificationCode(email); + + return { + success: true, + data: debugInfo, + message: '调试信息获取成功' + }; + } catch (error) { + this.logger.error(`获取验证码调试信息失败: ${email}`, error instanceof Error ? error.stack : String(error)); + + return { + success: false, + message: error instanceof Error ? error.message : '获取调试信息失败', + error_code: 'DEBUG_VERIFICATION_CODE_FAILED' + }; + } + } } \ No newline at end of file diff --git a/src/core/login_core/login_core.service.ts b/src/core/login_core/login_core.service.ts index 5488493..d288a49 100644 --- a/src/core/login_core/login_core.service.ts +++ b/src/core/login_core/login_core.service.ts @@ -567,4 +567,16 @@ export class LoginCoreService { const phoneRegex = /^(\+\d{1,3}[- ]?)?\d{10,11}$/; return phoneRegex.test(str.replace(/\s/g, '')); } -} + /** + * 调试验证码信息 + * + * @param email 邮箱地址 + * @returns 调试信息 + */ + async debugVerificationCode(email: string): Promise { + return await this.verificationService.debugCodeInfo( + email, + VerificationCodeType.EMAIL_VERIFICATION + ); + } +} \ No newline at end of file