Nodejs Express验证码插件express-recaptcha的使用

Nodejs Express验证码插件express-recaptcha的使用
express-recaptcha 是一个用于 Node.js 和 Express 的验证码中间件。它可以帮助你保护你的应用程序免受自动化脚本和恶意攻击者的攻击。下面是如何安装和配置 express-recaptcha 的步骤。

安装

首先,你需要安装 express-recaptcha

npm install express-recaptcha

配置

在使用 express-recaptcha 之前,你需要从 reCAPTCHA 获取你的站点密钥(Site Key)和秘密密钥(Secret Key)。你可以从 Google reCAPTCHA 网站获取这些信息。

示例代码

下面是一个简单的示例,展示如何在 Express 应用中使用 express-recaptcha

const express = require('express');
const bodyParser = require('body-parser');
const expressRecaptcha = require('express-recaptcha');

// 设置 reCAPTCHA 密钥
const siteKey = 'your_site_key';
const secretKey = 'your_secret_key';

// 初始化 reCAPTCHA 中间件
expressRecaptcha.init(siteKey, secretKey);

const app = express();

app.use(bodyParser.urlencoded({ extended: false }));

// GET 请求:显示表单
app.get('/', (req, res) => {
    res.render('index', { recaptcha: expressRecaptcha.render() });
});

// POST 请求:处理表单提交
app.post('/submit', expressRecaptcha.verify(), (req, res) => {
    if (req.recaptcha.error) {
        // 验证码错误处理
        return res.send('reCAPTCHA 验证失败,请重试!');
    }

    // 表单验证通过
    res.send('表单提交成功!');
});

app.listen(3000, () => {
    console.log('App is running on port 3000');
});

视图模板

如果你使用的是 EJS 模板引擎,你可以在视图文件(例如 views/index.ejs)中添加以下内容来渲染 reCAPTCHA:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>reCAPTCHA 示例</title>
</head>
<body>
    <form action="/submit" method="post">
        <!-- 其他表单字段 -->
        <%= recaptcha %>
        <button type="submit">提交</button>
    </form>
</body>
</html>

注意事项

  1. 安全性:确保你的 reCAPTCHA 秘密密钥(secret key)不被泄露。
  2. 环境变量:通常将敏感信息(如 reCAPTCHA 密钥)存储在环境变量中,而不是直接写入代码中。
  3. 错误处理:在实际应用中,你应该更详细地处理 reCAPTCHA 验证失败的情况,比如记录日志或向用户显示友好的错误消息。

通过以上步骤,你就可以在你的 Express 应用程序中集成 reCAPTCHA 验证了。


3 回复

当然,让我用一种轻松的方式给你介绍express-recaptcha的使用方法吧!

首先,你需要安装express-recaptcha这个插件。你可以通过npm来安装它:

npm install express-recaptcha --save

接着,在你的Express应用中引入它,并设置你的reCAPTCHA密钥:

const express = require('express');
const Recaptcha = require('express-recaptcha').RecaptchaV2;
const app = express();

// 设置你的reCAPTCHA密钥
const recaptcha = new Recaptcha('你的公钥', '你的私钥');
app.use(recaptcha.init);
app.use(recaptcha核查);

然后,在你的表单页面中添加一个reCAPTCHA字段:

<form method="POST" action="/submit">
    <!-- 其他表单字段 -->
    <div id="recaptcha"></div>
    <button type="submit">提交</button>
</form>

最后,在处理表单提交时,检查reCAPTCHA是否通过了验证:

app.post('/submit', (req, res) => {
    if (!req.recaptcha.error) {
        // 验证码通过,处理表单数据
        res.send('表单已成功提交!');
    } else {
        // 验证码未通过,显示错误信息
        res.send('请证明你不是机器人。');
    }
});

这样,你就成功地给你的应用添加了一个有趣的防机器人机制!希望这能让你的应用更加有趣和安全!


express-recaptcha 是一个用于 Node.js Express 应用中的验证码中间件。它可以用来增加一层安全性,防止自动化脚本或机器人对你的应用进行恶意操作。下面是如何安装和使用 express-recaptcha 的步骤。

安装

首先,你需要安装 express-recaptcha 和其他必要的依赖。打开终端,运行以下命令:

npm install express express-recaptcha

配置与使用

  1. 注册 ReCAPTCHA 并获取密钥:首先,你需要到 Google 的 ReCAPTCHA 网站(https://www.google.com/recaptcha/about/)注册并获取你的站点密钥(Site Key)和秘密密钥(Secret Key)。

  2. 初始化 ReCAPTCHA:在你的 Express 应用中配置 express-recaptcha。这通常需要在你的应用的初始化部分完成。

  3. 创建路由处理:为你的表单提交创建一个路由,并使用 express-recaptcha 中间件来验证用户是否通过了 ReCAPTCHA 验证。

下面是一个简单的示例代码:

const express = require('express');
const bodyParser = require('body-parser');
const expressRecaptcha = require('express-recaptcha');

// 设置你的 ReCAPTCHA 密钥
expressRecaptcha.config({
  siteKey: '你的站点密钥',
  secretKey: '你的秘密密钥'
});

const app = express();

app.use(bodyParser.urlencoded({ extended: false }));

app.get('/', (req, res) => {
  res.send(`
    <form method="POST" action="/submit">
      <input type="text" name="name" placeholder="请输入您的姓名">
      <div id="recaptcha"></div>
      <button type="submit">提交</button>
    </form>
    <script src="https://www.google.com/recaptcha/api.js" async defer></script>
  `);
});

app.post('/submit', expressRecaptcha.verify(), (req, res) => {
  if (!req.recaptcha.success) {
    return res.send('请完成验证码挑战。');
  }

  // 处理表单数据
  console.log(req.body);

  res.send('提交成功!');
});

app.listen(3000, () => console.log('服务器运行在 http://localhost:3000'));

这个示例展示了一个简单的表单页面,其中包含一个文本输入框和一个 ReCAPTCHA 验证组件。当用户尝试提交表单时,Express 应用会检查 ReCAPTCHA 验证的结果。如果验证失败,它将返回一条错误消息;否则,它将继续处理表单数据。

确保替换 '你的站点密钥''你的秘密密钥' 为你从 Google ReCAPTCHA 获取的实际密钥。

express-recaptcha 是一个用于 Node.js Express 应用的验证码插件。首先安装插件:npm install express-recaptcha。然后,在你的应用中配置并使用它:

const express = require('express');
const recaptcha = require('express-recaptcha');

recaptcha.init('你的站点密钥', '你的秘密密钥');

const app = express();

app.post('/submit', (req, res) => {
  recaptcha.verify(req, (ok) => {
    if (ok) {
      // 验证码正确处理逻辑
    } else {
      // 验证码错误处理逻辑
    }
  });
});

app.listen(3000);

确保替换 '你的站点密钥''你的秘密密钥' 为你的实际 reCAPTCHA 密钥。

回到顶部