
Nikolai Smirnov
Software Development Lead
已发表 Sep 24, 2026
已更新 Sep 24, 2026 · 最小阅读量

验证码令牌携带验证信息,而 Cookie 提供存储值并随匹配浏览器请求发送的方式。这些概念可能重叠:令牌可能通过 Cookie 传递。
当开发者收到成功的解决方案响应但浏览器仍显示原始页面时,这种区别就变得重要。返回的值可能适用于一个集成步骤,而下一步可能需要不同的结果或浏览器上下文。CapSolver 提供特定任务的结果,因此理解响应格式应作为集成的起点。本指南解释了常见的结果类型、如何读取它们,以及在将工作流视为完成之前需要检查的内容。它适用于你的应用程序和其他你被允许运行的自动化。
在验证码流程中,响应令牌通常是一个用于验证的不透明值。你的应用程序应根据相关提供商的合同使用它。其长度或外观无法告诉你它属于 reCAPTCHA、Turnstile 还是其他系统。
不要将该响应与你的解决方案 API 密钥混淆。API 密钥授权对解决方案服务的调用。响应令牌属于特定的验证码操作。两者都不能替代业务应用程序所需的凭证或权限。
浏览器 Cookie 是与网站及相关属性关联的命名值。这些属性会影响浏览器发送它的位置和时间。Cookie 可能包含应用程序会话状态、偏好或与验证相关的信息。
这意味着令牌与 Cookie 并非两种普遍竞争技术的选择。首先确定挑战和接收应用程序的要求。然后确定文档结果是表单响应、Cookie 值还是其他内容。
不同任务家族返回不同类型的信息,你的集成应保留这些差异。
| 挑战或任务 | 需要识别的典型结果 | 仍需检查的内容 |
|---|---|---|
| 验证码令牌任务 | 例如 gRecaptchaResponse 的响应 |
应用程序接收并验证适当的响应 |
| Turnstile 令牌任务 | 文档解决方案中的 token 值 |
网站的服务器验证它并处理预期操作 |
| AWS WAF 任务 | 文档中的 cookie 结果 |
被允许的浏览器工作流使用预期的会话上下文 |
| 图像到文本任务 | 识别的文本 | 文本属于当前图像且应用程序接受它 |
| 视觉引擎任务 | 模块特定的识别数据 | 应用程序执行匹配的图像交互 |
此表描述了结果类别,而非承诺一个适配器可以以相同方式使用每个字段。仅提取 token 的函数无法自动处理名为 gRecaptchaResponse 的响应、文本识别或 Cookie 结果。
同样的区别适用于代理工具。其成功消息应说明工具实际返回的内容。识别完成和应用程序接受表单代表不同的观察结果,即使两者都发生在同一浏览器任务中。
reCAPTCHA 和 Turnstile 响应令牌属于网站服务器必须完成的验证流程。从解决方案中接收令牌是该流程的一部分。
CapSolver 的 reCAPTCHA v2 任务文档 显示结果在 solution.gRecaptchaResponse 下。它还描述了条件相关的 Cookie 字段,因此实际配置和返回的对象比假设每个 reCAPTCHA 结果都相同更为重要。
Google 文档指出,reCAPTCHA 响应令牌在两分钟内有效且只能验证一次。因此,解决和提交之间的长时间暂停可能会改变结果。之前接受的令牌不能作为后续测试的可重复使用固定值。
对于你拥有的应用程序,请检查服务器的验证决策和浏览器结果。对于你被授权自动化的外部应用程序,请检查可观察的业务结果,而不要声称访问你没有的服务器端证据。
CapSolver Turnstile 任务 文档描述了其自己的请求和结果字段。请使用该合同,而不是替换 reCAPTCHA 示例中的字段。
Cloudflare 的 Turnstile 验证指南 要求服务器端验证,并将令牌描述为一次性使用,有效期为五分钟。仅可见的小部件状态无法证明你的服务器正确执行了检查。
避免在需要响应的操作之前过早解决。准备允许的任务,在适当的时间点获取响应,并确认接收应用程序的结果。不要将失败的提交变成无限的新的解决方案调用循环。
领取 CapSolver 奖励代码
立即提升你的自动化预算!
在充值 CapSolver 账户时使用奖励代码 CAP26,每次充值均可获得额外 5% 奖励——无限制。
现在在你的 CapSolver 仪表板 中领取
验证 Cookie 在浏览器上下文中记录提供商标记的状态。它不会授予对无关网站、账户或受保护操作的通用访问权限。
Cloudflare 将 cf_clearance 文档记录为与清除机制相关的 Cookie。其 清除文档 还解释了当配置为预清除时,Turnstile 可以支持清除。你不应假设每个成功的 Turnstile 令牌操作都会创建该 Cookie。
如果页面显示 Cloudflare 挑战而不是独立的 Turnstile 小部件,请首先确定实际机制。识别 Turnstile 和 Cloudflare 挑战页面 的指南涵盖了该早期决策。那里的不匹配可能将集成引导至错误的结果类型。
将清除视为具有自己条件的范围状态。它不是用户已登录、受限文档可访问或后续应用程序请求不会被拒绝的证据。
AWS 将其验证令牌描述为存储在 aws-waf-token Cookie 中。这是令牌和 Cookie 参与同一设计的具体示例。
CapSolver 的 AWS WAF 任务参考 文档描述了解决方案的结果结构。保持服务响应和浏览器存储行为的概念分离:一个告诉你解决方案返回了什么;另一个决定允许的应用程序工作流如何传递该值。
你不需要解码值来决定你的集成是否使用了正确的字段。你需要当前任务文档、匹配的浏览器上下文以及所请求的请求被接受的证据。
分阶段阅读解决方案响应,以确保接受的 API 请求不会被误认为是完成的应用程序操作。
首先检查任务创建是否成功。该阶段的错误需要关注提供的任务或服务响应。任务标识符仅表示任务存在;它不是验证码答案。
接下来遵循所选任务的文档完成流程。CapSolver 的 任务结果参考 描述了异步结果,而一些识别任务会直接从任务创建返回结果。避免将每个任务家族强制通过单一假设的轮询路径。
然后检查预期的解决方案字段。该值是验证码响应、Cookie、识别的文本还是坐标?缺失字段是有用的诊断证据。用空字符串替换它或将整个对象传递到表单中会隐藏不匹配。
最后验证业务操作。对于允许的表单测试,查找预期的确认和相关测试记录。对于只读数据任务,确认请求的内容存在。如果页面已更改但无法建立预期结果,请记录不确定性。
考虑一个假设的测试,请求产品可用性报告。解决方案返回了响应,但浏览器导航到了通用主页。解决方案步骤可能已完成,但报告从未获取。报告“验证码已解决;目标报告缺失”比报告整个运行成功更有利于后续工程师。
大多数结果处理错误来自于将不同阶段或结果类型视为可互换。
使用错误的响应字段。 保持每个适配器与其文档化任务类型绑定。在不将敏感值复制到问题跟踪器的情况下,审查实际字段名称。
使用过时的响应。 导航、刷新的挑战或长时间的操作员延迟可能使先前结果不适用。在继续之前,重新检查当前页面和提供商的有效性规则。
将 Cookie 视为跨工作线程可移植。 浏览器状态应保持在显式拥有下。将不透明值移动到无关上下文不是支持的会话工作流的替代方案。
仅检查解决方案仪表板。 仪表板可以帮助调查服务任务,但不能替代应用程序最终操作的证据。在你的报告中,保持任务状态和业务结果单独可见。
记录完整解决方案。 在需要时记录任务标识符、结果类别、时间戳和脱敏错误描述。完整的响应令牌和会话 Cookie 通常不属于普通调试输出。
在诊断故障时,保留事件序列而不是仅最后一个错误。在导航之前创建的任务、之后返回的结果以及在不同标签中提交的表单描述了一个与任务创建期间被拒绝的请求非常不同的问题。该时间线可以揭示调查位置,而无需收集秘密值本身。
从你实际观察到的挑战中选择解决方案任务,然后为该任务实现响应合同。明确浏览器的责任和应用程序的接受检查。这将产生比将每个返回的字符串视为相同类型的答案更清晰的集成代码和更有用的失败报告。
使用 CapSolver 与当前任务文档一起处理允许的验证码。从一个代表性工作流开始,确定完成看起来像什么,然后在该结果可观察后扩展。
Q: 验证码令牌和 Cookie 是否相同?
不。令牌是验证系统使用的值,而 Cookie 是浏览器上下文中存储和传输命名值的方式。如 AWS WAF 所示,Cookie 可以包含令牌。
Q: 我可以为任何验证码选择 Cookie 而不是令牌吗?
不。挑战提供方和任务合同决定了预期结果。在你自己的代码中更改结果格式不会改变接收应用程序接受的内容。
Q: Turnstile 令牌是否会自动提供 Cloudflare 清除?
不。Turnstile 响应验证和 Cloudflare 清除是不同的机制。Turnstile 预清除取决于配置;不要假设每个令牌操作都会生成清除 Cookie。
Q: 为什么解决方案返回结果后页面仍然失败?
检查结果字段、新鲜度、挑战参数、浏览器上下文和最终应用程序响应。解决方案结果本身无法确认浏览器执行了正确的操作或应用程序接受了它。
Q: 我应该保存令牌和 Cookie 以供以后运行吗?
不要构建验证码答案的通用缓存。遵循每个提供方的有效性和会话要求,保护任何必要的浏览器状态,并避免重复使用一次性响应。

Nikolai Smirnov
Software Development Lead
Building dependable software for complex automation.
关于作者