npm 包 react-recaptcha-dev 使用教程

阅读时长 11 分钟读完

在前端开发中,有些功能需要借助第三方库来实现。recaptcha 是一种反人类行为识别技术,可以在网站提交表单时防止机器人自动提交。如果你使用 React 来开发网站,那么 react-recaptcha-dev 可能就是你需要的库。

安装

使用 npm 可以很容易地安装 react-recaptcha-dev,只需运行以下命令即可:

在安装完成之后,在项目文件中引入此库即可:

使用方法

添加 site key

首先,你需要去 Google 的 reCAPTCHA 网站 上申请一个 site key 并将它添加到你的网站中。在网站根目录下的 index.html 文件中,添加以下代码:

渲染组件

添加完 site key 以后,就可以在表单中添加一个 recaptcha 组件。在组件中,你需要传入 site key、回调函数和其他配置项。

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

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

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

在上面的示例中,当用户验证成功时,isVerified 的状态会被设置为 true,此时提交按钮才会激活。

可配置选项

你可以向 Recaptcha 组件传递多个配置项,以满足自己的需求。下面是一些可用的配置项和它们的默认值:

配置项 默认值 描述
sitekey undefined 你的 reCAPTCHA 站点密钥
theme light 组件的主题。可选值为 lightdark
size normal 组件的大小。可选值为 normalcompactinvisible
tabindex 0 组件的 tab 键索引。
hl undefined 组件的语言设置。请参考支持的语言
callback undefined reCAPTCHA 验证通过时的回调函数。
expiredCallback undefined reCAPTCHA 过期时的回调函数。
errorCallback undefined reCAPTCHA 加载时的回调函数。
container default value() 验证码将被放置的 HTML 元素。如果未指定,则将使用组件本身作为容器。
className undefined 组件的 CSS 类名。

现实应用

以下是将 reCAPTCHA 应用到实际项目中的示例。在表单提交之前,检查验证码是否通过了验证,如果成功,则激活提交按钮:

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

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

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

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

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

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

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

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

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

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

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

总结

recaptcha 是一种有效的安全保护机制,可以用于网站表单的验证。react-recaptcha-dev 是一种方便易用的 React 库,可以帮助你轻松地将 recaptcha 集成到你的项目中。通过此库,开发人员可以省去自己编写底层 recaptcha 代码的烦恼,更专注于应用程序的实现。如果你正在寻找一种轻量级的 React 库,以便集成 recaptcha,那么 react-recaptcha-dev 绝对值得一试。

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

纠错
反馈