如何在Node.js服务器调用中验证recaptcha
Google reCAPTCHA: reCAPTCHA是一种验证码系统,可以帮助网站主区分人类用户和自动化访问。这项服务由Google提供。
Google提供了两个版本的reCAPTCHA:
- reCAPTCHA v3
- reCAPTCHA v2
本文将介绍reCAPTCHA v2。
方法:
- 在Google reCAPTCHA上注册您的网站
- 提交HTML表单
- 在Node.js服务器上获取响应密钥
- 重新验证密钥,并向用户端返回响应。
步骤1:在Google reCAPTCHA上注册您的网站
在Google reCAPTCHA平台上注册您的网站,以获取密钥,即站点密钥和密钥,在编写HTML表单时需要使用。
点击这里进入Google reCAPTCHA网站。
步骤2:在HTML中创建Google reCAPTCHA表单
在这里,我们将创建一个简单的HTML表单,其中action属性为/submit,包含一个输入字段和一个按钮。同时,我们需要在HTML文档中添加Google reCAPTCHA CDN,并在表单中添加一个div标签来获取HTML文档中的reCAPTCHA。
注意: 您需要将“your_site_key”替换为您的站点密钥。
示例:
文件名:index.html
文件名: style.css
输出:
步骤3:Node.js 服务器:
我们已经准备好了表单,现在让我们来编写服务器文件。在服务器端,我们将使用两个包,一个是express用于作为Web框架的服务器,另一个是isomorphic-fetch用于进行http/https调用。
创建一个新的目录并在其中生成package.json文件。使用 npm init 命令来生成package.json文件,这是最佳实践。这是我的package.json文件供参考。
文件名:package.json
现在,让我们来编写服务器文件,HTML表单将提交数据。
步骤4:验证验证码:
为了验证验证码,我们需要向以下URL发起POST请求。
- URL: https://www.google.com/recaptcha/api/siteverify?secret=
&response= - secret_key: 这个密钥您将从Google控制台获取,即秘密密钥。
- response_key: 这个密钥来自客户端,当用户提交表单时生成。
注意:
- g-recaptcha-response是浏览器在表单提交时生成的响应密钥的名称。如果它是空白或null,则表示用户未选择验证码,因此返回错误。
- 您需要用您的密钥替换“your_secret_key”。
文件名:app.js
运行应用程序:
要运行应用程序,请切换到项目文件夹并使用以下命令运行Node应用程序。
前往 localhost:4000 查看应用程序。
输出:
- 当验证码验证通过时
- 当验证码未验证时