Get widget token
You can get the widget token by three ways:
onSuccess callback
import { Turnstile } from "@marsidev/react-turnstile";
export default function Widget() {
const [token, setToken] = React.useState<string | null>(null);
return (
<Turnstile siteKey="1x00000000000000000000AA" onSuccess={setToken} />
);
}
ref.current.getResponse() method
import { Turnstile } from "@marsidev/react-turnstile";
import type { TurnstileInstance } from "@marsidev/react-turnstile";
export default function Widget() {
const ref = React.useRef<TurnstileInstance | null>(null);
return (
<>
<Turnstile ref={ref} siteKey="1x00000000000000000000AA" />
<button onClick={() => alert(ref.current?.getResponse())}>
Get response
</button>
</>
);
}
cf-turnstile-response HTML input
import { Turnstile } from "@marsidev/react-turnstile";
export default function Widget() {
const formRef = React.useRef<HTMLFormElement>(null);
async function handleSubmit(event: React.FormEvent<HTMLFormElement>) {
event.preventDefault();
const formData = new FormData(formRef.current!);
const token = formData.get("cf-turnstile-response");
// ...
}
return (
<form ref={formRef} onSubmit={handleSubmit}>
<input type="text" placeholder="username" />
<input type="password" placeholder="password" />
<Turnstile siteKey="1x00000000000000000000AA" />
<button type="submit">Login</button>
</form>
);
}