fix(web): refresh Turnstile token after login attempt (#6764)
Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
@@ -72,6 +72,7 @@ export function UserAuthForm({
|
|||||||
const [isPasskeyLoading, setIsPasskeyLoading] = useState(false)
|
const [isPasskeyLoading, setIsPasskeyLoading] = useState(false)
|
||||||
const [isWeChatDialogOpen, setIsWeChatDialogOpen] = useState(false)
|
const [isWeChatDialogOpen, setIsWeChatDialogOpen] = useState(false)
|
||||||
const [isWeChatSubmitting, setIsWeChatSubmitting] = useState(false)
|
const [isWeChatSubmitting, setIsWeChatSubmitting] = useState(false)
|
||||||
|
const [turnstileWidgetKey, setTurnstileWidgetKey] = useState(0)
|
||||||
const legalConsentErrorMessage = t('Please agree to the legal terms first')
|
const legalConsentErrorMessage = t('Please agree to the legal terms first')
|
||||||
const loginFailedMessage = t('Login failed')
|
const loginFailedMessage = t('Login failed')
|
||||||
|
|
||||||
@@ -158,12 +159,18 @@ export function UserAuthForm({
|
|||||||
|
|
||||||
if (!validateTurnstile()) return
|
if (!validateTurnstile()) return
|
||||||
|
|
||||||
|
const submittedTurnstileToken = turnstileToken
|
||||||
|
if (isTurnstileEnabled) {
|
||||||
|
setTurnstileToken('')
|
||||||
|
setTurnstileWidgetKey((current) => current + 1)
|
||||||
|
}
|
||||||
|
|
||||||
setIsLoading(true)
|
setIsLoading(true)
|
||||||
try {
|
try {
|
||||||
const res = await login({
|
const res = await login({
|
||||||
username: data.username,
|
username: data.username,
|
||||||
password: data.password,
|
password: data.password,
|
||||||
turnstile: turnstileToken,
|
turnstile: submittedTurnstileToken,
|
||||||
})
|
})
|
||||||
|
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
@@ -408,8 +415,10 @@ export function UserAuthForm({
|
|||||||
{isTurnstileEnabled && (
|
{isTurnstileEnabled && (
|
||||||
<div className='mt-2'>
|
<div className='mt-2'>
|
||||||
<Turnstile
|
<Turnstile
|
||||||
|
key={turnstileWidgetKey}
|
||||||
siteKey={turnstileSiteKey}
|
siteKey={turnstileSiteKey}
|
||||||
onVerify={setTurnstileToken}
|
onVerify={setTurnstileToken}
|
||||||
|
onExpire={() => setTurnstileToken('')}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|||||||
Reference in New Issue
Block a user