📜  如何在 Node.js 服务器调用中验证 recaptcha?(1)

📅  最后修改于: 2023-12-03 15:38:22.053000             🧑  作者: Mango

如何在 Node.js 服务器调用中验证 recaptcha?

Recaptcha 是 Google 推出的一种验证机制,能够有效的防止垃圾邮件和机器人攻击。通过添加 Recaptcha,可以确保用户提交表单时是真实的用户,而不是自动化程序。在本文中,我们将讨论如何在 Node.js 服务器调用中验证 Recaptcha。

步骤
步骤1:在 Google reCAPTCHA 管理界面中创建密钥

首先,导航到 Google Recaptcha 官网,然后单击 “管理员控制台” 按钮。如果您还没有注册,则需要注册一个 Google 帐户。

然后,创建新的网站,并注册一个 reCAPTCHA 帐户。注册后,您将获得一对密钥:网站密钥和私钥。

步骤2:在服务器端中实施验证

在你的 Node.js 服务器中,你需要实施一个接受到你的表单数据时的验证。这通常涉及获取表单的 POST 参数和一些服务器端验证。为了验证 reCAPTCHA,您应该使用以下模块提供的 API:https://www.google.com/recaptcha/api/siteverify

下面是一个使用 request 模块的例子:

const request = require('request');

app.post('/user/sign-up', (req, res) => {
  const { recaptchaToken } = req.body;

  const requestBody = {
    url: `https://www.google.com/recaptcha/api/siteverify?secret=${secret}&response=${recaptchaToken}`,
    json: true,
  };
  
  request.post(requestBody, (err, response, body) => {
    if (body.success) {
      // 验证成功时的处理逻辑
    } else {
      // 验证失败时的处理逻辑
    }
  });
});
步骤3:确保你的前端代码正确

在下一步之前,请确保你已经在你的代码中正确设置了 reCAPTCHA。这涉及在你的 HTML 中嵌入相关的 JS 和 CSS 文件,以及用户验证时将 reCAPTCHA 标识作为 POST 参数提交。在这个过程中,你需要使用一些帮助库,比如 react-google-recaptcha(如果你在 React 项目中使用)。

步骤4:测试

最后,测试你的表单,确保它已经成功地验证了 reCAPTCHA。如果测试通过,则表单可以检测到机器人和垃圾邮件发送者。

结论

Recaptcha 是一项有益的安全措施,它可以在保护用户同时,阻止机器人和垃圾邮件发送者。虽然在服务器端中实现这项机制可能会耗费一些额外的代码,但是那些寻求在网站上应用最佳实践的人都应该考虑在他们的表单中使用 reCAPTCHA。