Security News
Maven Central Adds Sigstore Signature Validation
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.
turnstile-next
Advanced tools
The Cloudflare Turnstile Client Side Rendering for React and NextJS
This is a React component that can be used to protect your React and NextJS applications with Cloudflare Access.
npm install --save turnstile-next
or
yarn add turnstile-next
In your layout or page, import the TurnstileNextContext
and use it your page or layout like so:
import TurnstileContext from 'turnstile-next/vercel';
export default function Layout({ children }) {
return (
<>
<div>{children}</div>
<TurnstileContext />
</>
);
}
only cloudflare script tag is included here.
In your index.html
file, use the cloudflare script tag like so:
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" defer async></script>
and you can use the TurnstileInput
component like so:
import TurnstileInput from 'turnstile-next';
const SITE_KEY = import.meta.env.VITE_SITE_KEY;
export default function MyComponent() {
const onVerify = (token : string) => {
console.log(token);
}
const onErr = (err : string) => {
console.log(err);
}
return (
<div>
<TurnstileInput onVerify={onVerify} onErr={onErr} siteKey={SITE_KEY} />
</div>
);
}
import TurnstileInput from 'turnstile-next';
const SITE_KEY = process.env.NEXT_PUBLIC_SITE_KEY;
export default function MyComponent() {
const onVerify = (token : string) => {
console.log(token);
}
const onErr = (err : string) => {
console.log(err);
}
return (
<>
<TurnstileInput onVerify={onVerify} onErr={onErr} siteKey={SITE_KEY} />
</>
);
}
The TurnstileInput
component accepts a set of properties that are used to configure the Turnstile challenge. Here's a detailed description of each property:
Property | Description |
---|---|
siteKey (required) | The site key for your Turnstile challenge. This key is obtained from the Turnstile dashboard. |
theme | The theme of the challenge. Defaults to "auto". |
locale | The locale of the challenge. Defaults to "en". |
size | The size of the challenge. Defaults to "normal". |
fieldName | The name of the field that will be used to store the token. Defaults to "cf-turnstile-token". |
retryInterval | The interval in milliseconds to retry the challenge. Defaults to 8000. |
retry | Whether to retry the challenge. Defaults to true. |
refreshOnExpired | Whether to refresh the challenge when it expires. Defaults to "auto". |
onVerify | A callback that will be called when the challenge is verified. |
onError | A callback that will be called when the challenge fails. |
onExpire | A callback that will be called when the challenge expires. |
onBeforeInteractive | A callback that will be called when the challenge is about to be interactive. |
onAfterInteractive | A callback that will be called when the challenge is interactive. |
onUnsupported | A callback that will be called when the challenge is unsupported by the user's browser. |
For detailed information on each property and its usage, please refer to the Turnstile documentation.
refreshTurnstile
This function can be used to refresh the Turnstile challenge. It accepts a single parameter, options
, which is an object that can be used to configure the refresh. Here's a detailed description of each property:
Property | Description |
---|---|
className | The class name of the Turnstile challenge. Defaults to "cf-turnstile". |
example:
import { refreshTurnstile } from 'turnstile-next/utils';
const refresh = () => {
refreshTurnstile({ className: 'cf-turnstile' });
};
export default function MyComponent() {
return (
<>
<button onClick={refresh}>Refresh</button>
</>
);
}
checkWidgetRender
This function can be used to check if the Turnstile challenge has been rendered.
example:
import { useEffect } from 'react';
import { checkWidgetRender } from 'turnstile-next/utils';
export default function MyComponent() {
useEffect(() => {
checkWidgetRender();
}, []);
return (
<>
<div>My Component</div>
</>
);
}
Contributions are always welcome!
FAQs
The Cloudflare Turnstile Client Side Rendering for React and NextJS
The npm package turnstile-next receives a total of 0 weekly downloads. As such, turnstile-next popularity was classified as not popular.
We found that turnstile-next demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.
Security News
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
Research
Security News
Socket researchers uncovered a backdoored typosquat of BoltDB in the Go ecosystem, exploiting Go Module Proxy caching to persist undetected for years.