在 Next.js 14 中使用 reCAPTCHA v3

💡 原文英文,约600词,阅读约需3分钟。
📝

内容提要

该文章介绍了如何使用useFormState和useActionState与Google的reCaptcha v3集成,以实现表单数据的提交和验证。首先需要在reCAPTCHA v3管理控制台创建一个新站点,并将相关密钥添加到项目的环境变量中。然后使用react-google-recaptcha-v3包提供的组件和方法来运行reCaptcha脚本,并将验证码响应添加到表单数据中。最后,在服务器端验证验证码数据,并根据验证结果进行相应处理。作者表示将来还会更新关于useActionState的集成方法。

🎯

关键要点

  • 使用useFormState和useActionState提交表单数据到服务器。

  • 在reCAPTCHA v3管理控制台创建新站点并配置相关信息。

  • 将reCAPTCHA密钥添加到项目的环境变量中。

  • 使用react-google-recaptcha-v3包提供的组件运行reCaptcha脚本。

  • 在表单提交前获取reCAPTCHA响应并将其添加到表单数据中。

  • 在服务器端验证reCAPTCHA数据并根据验证结果处理。

  • 作者计划未来更新关于useActionState的集成方法。

延伸问答

如何在 Next.js 中集成 reCAPTCHA v3?

在 Next.js 中集成 reCAPTCHA v3 需要创建一个新站点并配置相关密钥,然后使用 react-google-recaptcha-v3 包提供的组件来运行 reCAPTCHA 脚本,并在表单提交前获取验证码响应。

如何设置环境变量以使用 reCAPTCHA v3?

在项目中创建 .env.local 文件,并添加 NEXT_PUBLIC_RECAPTCHA_SITE_KEY 和 RECAPTCHA_SECRET_KEY 变量,确保将其添加到 .gitignore 中。

如何在表单提交时添加 reCAPTCHA 响应?

在表单组件中使用 useFormState,并在提交前调用 executeRecaptcha 函数获取验证码响应,将其添加到表单数据中。

如何在服务器端验证 reCAPTCHA 数据?

在服务器端接收验证码令牌后,向 Google 的验证 API 发送请求,使用 RECAPTCHA_SECRET_KEY 进行验证,并根据返回的分数处理结果。

使用 useActionState 时如何集成 reCAPTCHA?

文章提到将来会更新关于 useActionState 的集成方法,目前主要使用 useFormState 进行集成。

react-google-recaptcha-v3 包的作用是什么?

react-google-recaptcha-v3 包提供 GoogleReCaptchaProvider 组件,用于运行 reCAPTCHA 脚本并将结果传递给子组件。

🏷️

标签

➡️

继续阅读