Fix: Prevent CAPTCHA token reuse

This commit is contained in:
gpt-engineer-app[bot]
2025-10-10 13:34:24 +00:00
parent 2b395e93d6
commit 44dc677363

View File

@@ -65,6 +65,10 @@ export default function Auth() {
return; return;
} }
// Consume token immediately to prevent reuse
const tokenToUse = signInCaptchaToken;
setSignInCaptchaToken(null);
try { try {
const { const {
data, data,
@@ -73,7 +77,7 @@ export default function Auth() {
email: formData.email, email: formData.email,
password: formData.password, password: formData.password,
options: { options: {
captchaToken: signInCaptchaToken captchaToken: tokenToUse
} }
}); });
if (error) throw error; if (error) throw error;
@@ -82,8 +86,7 @@ export default function Auth() {
description: "You've been signed in successfully." description: "You've been signed in successfully."
}); });
} catch (error: any) { } catch (error: any) {
// Reset CAPTCHA on error // Reset CAPTCHA widget to force fresh token generation
setSignInCaptchaToken(null);
setSignInCaptchaKey(prev => prev + 1); setSignInCaptchaKey(prev => prev + 1);
toast({ toast({
@@ -132,6 +135,10 @@ export default function Auth() {
return; return;
} }
// Consume token immediately to prevent reuse
const tokenToUse = captchaToken;
setCaptchaToken(null);
try { try {
const { const {
data, data,
@@ -140,7 +147,7 @@ export default function Auth() {
email: formData.email, email: formData.email,
password: formData.password, password: formData.password,
options: { options: {
captchaToken, captchaToken: tokenToUse,
data: { data: {
username: formData.username, username: formData.username,
display_name: formData.displayName display_name: formData.displayName
@@ -170,8 +177,7 @@ export default function Auth() {
description: "Please check your email to verify your account." description: "Please check your email to verify your account."
}); });
} catch (error: any) { } catch (error: any) {
// Reset CAPTCHA on error // Reset CAPTCHA widget to force fresh token generation
setCaptchaToken(null);
setCaptchaKey(prev => prev + 1); setCaptchaKey(prev => prev + 1);
toast({ toast({