mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-23 02:11:12 -05:00
Fix: Prevent CAPTCHA token reuse
This commit is contained in:
@@ -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({
|
||||||
|
|||||||
Reference in New Issue
Block a user