This commit is contained in:
Baobhan Sith
2025-04-25 16:21:56 +08:00
parent 0b711eb0d8
commit ede3085e49
2 changed files with 6 additions and 3 deletions
+6 -3
View File
@@ -60,7 +60,8 @@ export const login = async (req: Request, res: Response): Promise<void> => {
if (!captchaToken) { if (!captchaToken) {
console.log(`[AuthController] 登录尝试失败: CAPTCHA 已启用但未提供令牌 - ${username}`); console.log(`[AuthController] 登录尝试失败: CAPTCHA 已启用但未提供令牌 - ${username}`);
// 记录审计日志等(可选,看是否需要区分) // 记录审计日志等(可选,看是否需要区分)
return res.status(400).json({ message: '需要提供 CAPTCHA 令牌。' }); res.status(400).json({ message: '需要提供 CAPTCHA 令牌。' });
return; // 添加 return 语句以确保函数在此处终止
} }
try { try {
const isCaptchaValid = await captchaService.verifyToken(captchaToken); const isCaptchaValid = await captchaService.verifyToken(captchaToken);
@@ -70,13 +71,15 @@ export const login = async (req: Request, res: Response): Promise<void> => {
ipBlacklistService.recordFailedAttempt(clientIp); // Record failed attempt for invalid CAPTCHA ipBlacklistService.recordFailedAttempt(clientIp); // Record failed attempt for invalid CAPTCHA
auditLogService.logAction('LOGIN_FAILURE', { username, reason: 'Invalid CAPTCHA token', ip: clientIp }); auditLogService.logAction('LOGIN_FAILURE', { username, reason: 'Invalid CAPTCHA token', ip: clientIp });
notificationService.sendNotification('LOGIN_FAILURE', { username, reason: 'Invalid CAPTCHA token', ip: clientIp }); notificationService.sendNotification('LOGIN_FAILURE', { username, reason: 'Invalid CAPTCHA token', ip: clientIp });
return res.status(401).json({ message: 'CAPTCHA 验证失败。' }); res.status(401).json({ message: 'CAPTCHA 验证失败。' });
return; // 添加 return 语句以确保函数在此处终止
} }
console.log(`[AuthController] CAPTCHA 验证成功 - ${username}`); console.log(`[AuthController] CAPTCHA 验证成功 - ${username}`);
} catch (captchaError: any) { } catch (captchaError: any) {
console.error(`[AuthController] CAPTCHA 验证过程中出错 (${username}):`, captchaError.message); console.error(`[AuthController] CAPTCHA 验证过程中出错 (${username}):`, captchaError.message);
// 如果是配置错误或 API 请求失败,返回 500 // 如果是配置错误或 API 请求失败,返回 500
return res.status(500).json({ message: 'CAPTCHA 验证服务出错,请稍后重试或检查配置。' }); res.status(500).json({ message: 'CAPTCHA 验证服务出错,请稍后重试或检查配置。' });
return; // 添加 return 语句以确保函数在此处终止
} }
} else { } else {
console.log(`[AuthController] CAPTCHA 未启用,跳过验证 - ${username}`); console.log(`[AuthController] CAPTCHA 未启用,跳过验证 - ${username}`);
BIN
View File
Binary file not shown.