在 Next.js 项目中添加 Google reCAPTCHA 的详细步骤

阅读时长 5 分钟读完

随着网络攻击愈发普遍,网站需要提高安全性以保护用户隐私和数据安全。为此,添加 Google reCAPTCHA 是实现防止机器人滥用网站的有效方法。如果您正在使用 Next.js,那么在添加 Google reCAPTCHA 时也许遇到过许多问题。本文将为您提供详细的步骤和示例代码,帮助您在 Next.js 项目中添加 Google reCAPTCHA。

基本概念

Google reCAPTCHA 是一种验证功能,可帮助网站确认是否是人类在使用该网站。reCAPTCHA 使用 Google 的先进技术来区分人类和机器人,同时增加安全性,确保您的网站安全可靠。它主要有两种类型:

  1. reCAPTCHA v2
  2. reCAPTCHA v3

reCAPTCHA v2 是一种复选框验证,在验证过程中需要输入验证码或照片。而 reCAPTCHA v3 是一种隐式验证,没有任何UI元素。通过向后台发送AJAX请求,用户的行为将被评估并给予分数。 如果分数低于设定值,那么这个用户将被认为是机器人并被阻止。

在本文中,我们将仅讨论如何在 Next.js 项目中添加 reCAPTCHA v2。

步骤

第一步:注册 Google reCAPTCHA

首先,您需要注册并获得 reCAPTCHA 的站点密钥和秘钥。打开 https://www.google.com/recaptcha/admin/create 在Google ReCAPTCHA管理页面中,按照向导填写表格。一旦完成,在 reCAPTCHA 管理页面上可以获得 Site key 和 Secret key。请妥善保管这些密钥。

第二步:安装 react-google-recaptcha 包

在 Next.js 项目中添加 reCAPTCHA 的最好方法之一是使用开源包 react-google-recaptcha,它提供了可重用的Google reCAPTCHA 片段组件。

使用以下命令来安装:

第三步:添加 reCAPTCHA 到表单页面

在要添加 reCAPTCHA 的表单页面上,您需要使用以下代码片段添加 reCAPTCHA 组件。此代码将标准化 reCAPTCHA 客户端脚本和CSS文件并引入 react-google-recaptcha 包:

-- -------------------- ---- -------
------ ------ - --------- - ---- --------
------ --------- ---- -------------------------

----- ------------- ------- --------- -

  ------------------------------ -
    -- ---- --- ---- --- --- ----- -----------------
    --------------------------- --- ---- --------- -------
  -

  -------- -
    ------ -
      -----
        ------
          --- ---- ---- ---- ---
          ----------
            -----------------------
            ------------------------------
          --
        -------
      ------
    -
  -

-

------ ------- --------------

请注意,您需要将 sitekey 属性值更改为在前面步骤中获取的 Site key。这是必须的,否则 reCAPTCHA 将无法运作。

第四步:处理表单提交

现在,您需要更新表单提交处理程序,以验证 reCAPTCHA 对象是否已正确更新。此步骤包括:

  1. 获取 reCAPTCHA 的响应标记
  2. 向 Google 发送验证请求
  3. 根据响应的验证结果采取相应的行动。

可以使用以下示例代码实现此过程:

-- -------------------- ---- -------
----- - ---------------- - - ------------

----- -------- -------------------- - --------- -- -
  ----- --- - ----- ------
    -------------------------------------------------- -
      ------------------------------------------------------------------------
    -
      ------- -------
    -
  --
  ----- - ------- - - ----- -----------

  -- ---------- ---- ---------- --- ----- --------- --------
  -- --------- -
    ------------------ ---- ------ --- - ---------
    ---- ---- ---- ---------- ---- -- ----------
  -
  ---- -
    ----------------- ---------- -- ----- ----- ------------
    ----------- ---------- ------- -- -------- --------- ---------- ---
  -
-

请注意,上面的代码示例中,我们使用了 RECAPTCHA_SECRET 环境变量,以保护秘钥(建议您也这样做)。此外, 'g-recaptcha-response' 是 reCAPTCHA 的默认响应密钥,必须包含在表单服务端提交处理程序上。

结论

在本文中,我们介绍了如何将 Google reCAPTCHA 添加到 Next.js 项目中。通过遵循这些简单而详细的步骤,您可以轻松地保护您的网站免受机器人攻击。

将 Google reCAPTCHA 添加到您的网站中,不仅有助于保护您的客户和业务,还有助于您提供一个更加安全和可靠的网站。希望本文能对您有所帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6705a830d91dce0dc8544d7c

纠错
反馈