validateTurnstile.js 639 B

123456789101112131415161718192021222324
  1. export default async (token, remoteip) => {
  2. try {
  3. const response = await fetch(
  4. "https://challenges.cloudflare.com/turnstile/v0/siteverify",
  5. {
  6. method: "POST",
  7. headers: {
  8. "Content-Type": "application/json",
  9. },
  10. body: JSON.stringify({
  11. secret: process.env.TURNSTILE_SECRET_KEY,
  12. response: token,
  13. remoteip: remoteip,
  14. }),
  15. },
  16. );
  17. const result = await response.json();
  18. return result;
  19. } catch (error) {
  20. console.error("Turnstile validation error:", error);
  21. return { success: false, "error-codes": ["internal-error"] };
  22. }
  23. }