@adobe-commerce/recaptcha

中文文档
1.3.1发布于 2026/11/03SEE LICENSE IN LICENSE.mdES Module近 30 天下载 4606

模块可以有效验证用户是人类,而不是bots或垃圾邮件

中文使用文档
文档目录12 节
  1. 目的
  2. 安装
  3. 快速启动
  4. 公共方法
  5. setEndpoint(url: string)
  6. setConfig(configList: PropsFormTypes[], options?: { b2bEnab…
  7. initReCaptcha(lazyLoadTimeout?: number)
  8. verifyReCaptcha(): Promise<string | undefined>
  9. enableLogger(enabled: boolean)
  10. 默认窗体类型
  11. B2B 窗体类型
  12. 混合类型配置

重新控制模块

目的

这个模块将Google reCAPTCHA整合到Adobe Commercial storefronts中. 这个 支持两者 reCAPTCHA v3 (英语) 财务报告和审定财务报表 reCAPTCHA 企业,提供方法 用于配置、初始化和核实受保护表格上的reCAPTCHA.

模块询问 recaptchaFormConfig 获取每个窗体的图形QL 端点 配置, 自动检测哪一类 reCAPTCHA (v3 或 Enterprise) 配置并装入相应的脚本.

安装

npm i @adobe-commerce/recaptcha

快速启动

import {
  setEndpoint,
  setConfig,
  initReCaptcha,
  verifyReCaptcha,
  enableLogger,
} from '@adobe-commerce/recaptcha';

// 1. Set the backend GraphQL endpoint
setEndpoint('https://your-store.com/graphql');

// 2. Fetch and store reCAPTCHA configuration
await setConfig([{ badgeId: 'generateCustomerToken' }]);

// 3. Initialize reCAPTCHA (loads script, renders badges)
initReCaptcha();

// 4. Get a token when submitting a protected form
const token = await verifyReCaptcha();

公共方法

setEndpoint(url: string)

设置用于获取 reCAPTCHA 配置的 GraphQL 端点 URL .

setConfig(configList: PropsFormTypes[], options?: { b2bEnabled?: boolean })

从后端通过获取 reCAPTCHA 配置 recaptchaFormConfig 财务报告和审定财务报表 将其存储在会话存储中.

  • 查询所有默认窗体类型, 并确定启用的哪些类型
  • 何时 options.b2bEnabled 实值 true,包括 COMPANY_CREATE 在查询中 - 此窗体类型为 没有 默认包含
  • 将响应正常化为统一的配置形状
  • 从中检测 reCAPTCHA 类型(v3或企业型) re_captcha_type 字段
  • 跳过空窗体 website_key
  • 如果混合类型(v3和Entertainment)为,警告和禁用reCAPTCHA 在表格中检测
// B2C storefront (default)
await setConfig([{ badgeId: 'generateCustomerToken' }]);

// B2B storefront
await setConfig([], { b2bEnabled: true });

initReCaptcha(lazyLoadTimeout?: number)

初始化 reCAPTCHA, 方法是装入适当的 Google 脚本和渲染 警徽 警徽 警徽.

  • 装入 enterprise.js 用于企业或 api.js 用于v3
  • 对于内嵌徽章位置, 将无形部件变成 DOM 元素 匹配每个窗体 badgeId
  • 默认懒惰负载超时: 3000ms

verifyReCaptcha(): Promise<string | undefined>

生成并返回 reCAPTCHA 令牌以提交格式.

  • 用途 grecaptcha.enterprise.execute() 用于企业或 grecaptcha.execute() 用于v3
  • 回返 undefined 如果 reCAPTCHA 未启用或未配置

enableLogger(enabled: boolean)

启用或禁用调试日志 。 启用时,日志前缀为 [ReCaptcha] 并包括:

  • 配置和正常化细节
  • 检测到哪些 reCAPTCHA 类型并启用哪些形式
  • 脚本加载 URL
  • 标记渲染活性
  • 托肯世代尝试
  • 跳过窗体( 缺少密钥) 或混合类型配置的警告

默认窗体类型

默认时询问这些窗体类型( 不需要额外配置 ):

窗体类型徽章标识
PLACE_ORDERplaceOrder
CONTACTcontactUs
CUSTOMER_LOGINgenerateCustomerToken
CUSTOMER_FORGOT_PASSWORDrequestPasswordResetEmail
CUSTOMER_CREATEcreateCustomerV2
CUSTOMER_EDITupdateCustomerV2
NEWSLETTERsubscribeEmailToNewsletter
PRODUCT_REVIEWcreateProductReview
SENDFRIENDSENDFRIEND
BRAINTREEBRAINTREE

B2B 窗体类型

B2B 存储前端应该通过 { b2bEnabled: true } 包括 COMPANY_CREATE 在 reCAPTCHA 查询中:

await setConfig([], { b2bEnabled: true });

这需要后端才能曝光 COMPANY_CREATE 内 ReCaptchaFormEnum。 。 。 .

混合类型配置

如果商务管理者已经配置了 RECAPTCHA v3 等一些表格 与企业号,模块将:

  1. 登录警告并指示更新商务管理员配置
  2. 完全禁用 reCAPTCHA (返回时没有配置, 没有装入脚本)

所有表格都必须使用相同的reCAPTCHA类型. 在商务管理员中配置此选项 下级 存储 > 配置 > 安全 > Google reCAPTCHA Storefront。 。 。 .

版本与发布记录

@adobe-commerce/recaptcha 共发布 140 个版本,首次发布于 2025/03/03;过去 12 个月发布了 126 个版本。

版本发布日期距今
1.3.1latest2026/11/032 天前
1.3.1-alpha-20261029084654alpha2026/10/297 天前
1.3.1-alpha-202610272012362026/10/289 天前
1.3.1-beta.0beta2026/10/2214 天前
1.3.1-alpha-202610212022512026/10/2215 天前
1.3.1-alpha-202610201602252026/10/2116 天前

关于 @adobe-commerce/recaptcha 的常见问题

@adobe-commerce/recaptcha 是什么?

模块可以有效验证用户是人类,而不是bots或垃圾邮件

如何安装 @adobe-commerce/recaptcha?

在项目目录运行 npm install @adobe-commerce/recaptcha,或使用 pnpm add / yarn add / bun add。

@adobe-commerce/recaptcha 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/adobe-commerce__recaptcha 是否存在。

@adobe-commerce/recaptcha 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@adobe-commerce/recaptcha 可以商用吗?

@adobe-commerce/recaptcha 使用 SEE LICENSE IN LICENSE.md 许可。许可条款写在包内的独立文件中,请阅读该文件确认可否商用。以上为概括,不构成法律意见,请以许可原文为准。

@adobe-commerce/recaptcha 的下载量有多少?

根据 npm 官方下载统计,@adobe-commerce/recaptcha 在 2026/10/05 – 2026/11/03 这 30 天内被下载 4,606 次,日均约 154 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@adobe-commerce/recaptcha 还在维护吗?

最新版本 1.3.1 发布于 2026/11/03(2 天前);至今共发布 140 个版本,其中过去 12 个月发布了 126 个;首次发布于 2025/03/03。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。