TokenGX Cap 验证码集成

SKILL开发
开发 未标注权限 许可证不明确
安装这个技能

TokenGX Cap 验证码【代码集成】技能 —— 面向开发场景,提供前端组件和后端验证的代码模板,帮助用户将 Cap 无感验证码快速集成到网站或应用中。适用场景:注册登录防刷、表单提交保护、API 接口防爬、发短信/邮件防滥用等。支持前端(HTML/React/Vue/Next.js)和后端(Node.js/Python/PHP/Go)全栈集成。触发词:集成验证码、添加人机验证、CAPTCHA 集成、cap widget、验证码前端、验证码后端、防刷表单等。与 tokengx-cap-admin(服务管理)互补,本技能聚焦代码编写而非服务端管理。

一句话选型结论

按资料字段整理

TokenGX Cap 验证码集成是开发类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类开发 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_cbd28848/tokengx-cap-integration
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

开发
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_cbd28848仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791737659
正文体量7.4 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
写代码与改 bug

按需求补代码、定位并修掉报错。

读仓库与生成改动

让模型读懂项目结构,再给出可落地的改动。

跑测试与排查故障

按现象排查问题,补测试用例并复跑。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在开发场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
TokenGX Cap 验证码集成当前 未标注权限 未标注 未标注 未标注 有
技能审查员 浏览器控制 ClawHub 市场 877.9 万 OpenClaw 有
Vercel React 最佳实践 浏览器控制 GitHub 仓库 849.1 万 Codex、Claude、Cursor 有
GitHub 代码协作 联网访问 ClawHub 市场 763.3 万 OpenClaw 有
网页设计指南 联网访问 GitHub 仓库 668.6 万 Codex、Claude、Cursor 有
本体论 只读 ClawHub 市场 663.7 万 OpenClaw 有

SKILL.md 全文

7.4 KB
模型实际读到的说明书原文,来自技能仓库

Cap 验证码代码集成(tokengx-cap-integration)

你是一个 Cap 验证码集成专家。当用户需要为其网站或应用添加人机验证功能时,使用此技能帮助用户完成集成。

关于 Cap

Cap 是一个开源、自托管的无感验证码服务,替代传统图形验证码。核心优势:
- 无感验证:用户无需手动识别图片,自动完成验证
- 隐私合规:自托管,数据不经过第三方,GDPR 合格
- 轻量高性能:基于 WebAssembly,加载快、资源占用低
- 开源免费:无调用次数限制,无隐藏费用

集成流程

帮助用户集成 Cap 时,按以下步骤进行:

第一步:获取凭证

引导用户访问验证码管理后台注册并创建站点,获取:
- Site Key:前端使用,可公开
- Secret Key:后端使用,必须保密

当前可用的 Cap 服务地址:https://cap.tokengx.cn

第二步:前端集成

根据用户的项目技术栈,选择合适的集成方式:

方式 A:HTML Script 标签(原生 HTML / 静态页面)

参考 assets/frontend/html-standalone.html 模板。

核心代码:

<script src="https://cap.tokengx.cn/cap-widget.js"></script>
<cap-widget data-cap-api-endpoint="https://cap.tokengx.cn/{SITE_KEY}/"></cap-widget>

方式 B:npm 安装(React / Vue / Next.js 等框架)

npm install cap-widget
  • React 项目参考 assets/frontend/react.jsx
  • Vue 3 项目参考 assets/frontend/vue.txt
  • Next.js 项目参考 assets/frontend/nextjs.tsx

第三步:后端验证

前端获取 Token 后,提交到用户后端,后端调用 Cap 的 siteverify 接口验证 Token 有效性。

根据用户的后端语言,提供对应代码:
- Node.js / TypeScript:参考 assets/backend/nodejs.ts
- Python / Flask / FastAPI:参考 assets/backend/python.py
- PHP:参考 assets/backend/php.txt
- Go:参考 assets/backend/go.txt

第四步:品牌链接重定向(重要)

cap-widget 组件右下角有一个 "Cap" 品牌链接,默认指向 Cap 官网 https://trycap.dev(包括鼠标悬停状态栏显示的 href、以及点击跳转目标)。接入 TokenGX 平台时,应将其重定向到 https://cap.tokengx.cn。

为什么需要特殊处理:cap-widget 内部有品牌保护机制,无法通过常规方式修改:
1. 链接 href 硬编码为 trycap.dev,组件的 enforceCredits() 方法会在渲染后(含 setTimeout 100ms)把 href 重置回 trycap.dev,导致鼠标悬停状态栏仍显示 trycap.dev
2. 点击事件调用了 e.preventDefault() 后用 window.open('https://trycap.dev/...') 跳转,所以只改 href 无法改变点击行为
3. 链接样式用 inline !important 锁死(display/visibility/opacity/pointer-events),无法通过 CSS 隐藏或覆盖
4. 链接位于 Shadow DOM 内(mode: "open"),外层 scoped 样式无法穿透

需要两处修正:
1. 修悬停提示:用 MutationObserver 监听 Shadow DOM 内的 a.credits 元素,一旦 href 被 enforceCredits() 重置为 trycap.dev,立即改回 cap.tokengx.cn。由于 shadowRoot 是 mode: "open",可通过 widget.shadowRoot.querySelector('a.credits') 访问。
2. 修点击跳转:拦截 window.open,把 trycap.dev 重写为 cap.tokengx.cn。

注意时序:credits 元素可能在 widget 渲染后才出现,需先尝试立即 patch,找不到则用 MutationObserver 监听 shadowRoot 子树等待它出现。

通用代码片段(框架无关,接收 widget 元素):

// cap-widget 品牌链接重定向:trycap.dev -> cap.tokengx.cn
// 1. MutationObserver 持续修正 href(修鼠标悬停提示)
// 2. window.open 拦截(修点击跳转)
const _TARGET = 'https://cap.tokengx.cn';
let _originalOpen = null;
let _hrefObserver = null;
let _rootObserver = null;

function installBrandRedirect(widget) {
  const shadow = widget?.shadowRoot;
  if (!shadow) return;

  const patchCredits = (credits) => {
    if (credits.getAttribute('href') !== _TARGET) {
      credits.setAttribute('href', _TARGET);
    }
    if (credits._capPatched) return;
    credits._capPatched = true;
    _hrefObserver = new MutationObserver(() => {
      if (credits.getAttribute('href') !== _TARGET) {
        credits.setAttribute('href', _TARGET);
      }
    });
    _hrefObserver.observe(credits, { attributes: true, attributeFilter: ['href'] });
  };

  // credits 可能在 widget 渲染后才出现,先尝试立即 patch,再监听 shadow DOM
  const existing = shadow.querySelector('a.credits');
  if (existing) {
    patchCredits(existing);
  } else {
    _rootObserver = new MutationObserver(() => {
      const credits = shadow.querySelector('a.credits');
      if (credits) { patchCredits(credits); _rootObserver.disconnect(); _rootObserver = null; }
    });
    _rootObserver.observe(shadow, { childList: true, subtree: true });
  }

  if (!_originalOpen) {
    _originalOpen = window.open.bind(window);
    window.open = function (url, target, features) {
      if (typeof url === 'string' && url.includes('trycap.dev')) {
        url = url.replace('trycap.dev', 'cap.tokengx.cn');
      }
      return _originalOpen.call(window, url, target, features);
    };
  }
}
function uninstallBrandRedirect() {
  if (_hrefObserver) { _hrefObserver.disconnect(); _hrefObserver = null; }
  if (_rootObserver) { _rootObserver.disconnect(); _rootObserver = null; }
  if (_originalOpen) { window.open = _originalOpen; _originalOpen = null; }
}

各框架的完整集成示例(含品牌重定向)见 assets/frontend/ 下对应模板:
- HTML:html-standalone.html
- Vue 3:vue.txt
- React:react.jsx
- Next.js:nextjs.tsx

第五步:安全建议

提醒用户:
1. Secret Key 绝不能暴露到前端
2. 所有需要防刷的接口都要加后端验证(登录、注册、发短信等)
3. 验证失败返回统一错误,不要区分具体原因
4. 结合速率限制使用效果更佳

API 端点

端点 方法 说明
https://cap.tokengx.cn/{SITE_KEY}/ GET Widget 资源和挑战接口
https://cap.tokengx.cn/siteverify POST 后端验证 Token

常见问题排查

当用户遇到问题时,按以下顺序排查:

  1. Widget 不显示:检查 data-cap-api-endpoint 格式(末尾需有 /),检查浏览器控制台错误
  2. 验证总是失败:检查 Site Key 和 Secret Key 是否匹配,Token 是否过期
  3. 后端验证网络错误:确认服务器能访问 cap.tokengx.cn,检查防火墙规则

注意事项

  • Site Key 与域名绑定,不同项目应使用不同的 Site Key
  • Token 有效期约 2 分钟,过期需重新验证
  • 前端事件:solve(成功)、error(失败)、progress(进度)、reset(重置)

常见问题

5 问
答案由本站依据条目字段整理
TokenGX Cap 验证码集成怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_cbd28848/tokengx-cap-integration。安装方式为未标注。装完刷新技能列表或重开客户端。

TokenGX Cap 验证码集成支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

TokenGX Cap 验证码集成权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

TokenGX Cap 验证码集成收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

TokenGX Cap 验证码集成用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。