ReCaptcha V2验证响应缺失challenge_ts参数,求官方说明及原因
ReCaptcha V2
challenge_ts 参数消失及 timeout-or-duplicate 错误相关问题 我最近几周也碰到了一模一样的情况!之前验证失败返回的响应里还会带 challenge_ts 参数,用来判断是不是验证码过期,但现在确实只返回像这样的结构了:
{ "success": false, "error-codes": ["timeout-or-duplicate"] }
我翻遍了Google的ReCaptcha官方文档和开发者社区,也没找到任何关于移除这个参数的公开说明。不过从其他开发者的反馈来看,这不是个例:
- 不少人在近1-2周内开始反馈这个变化,主要集中在返回
timeout-or-duplicate错误时丢失challenge_ts; - 还有人测试后发现,其他错误码(比如
invalid-input-response)的响应里也不再包含这个参数了。
关于变更原因,目前社区里有几个主流推测:
- 简化响应结构:Google可能觉得
error-codes里的timeout-or-duplicate已经足够明确标识过期/重复提交的情况,没必要再额外返回时间戳参数; - 隐私合规调整:
challenge_ts包含了用户提交验证的时间信息,可能涉及部分地区的隐私法规要求,因此被移除; - API底层逻辑更新:ReCaptcha的后端验证流程最近可能做了优化,不再生成或返回这个参数。
如果你需要判断验证码是否过期,现在只能依赖error-codes里的timeout-or-duplicate来做判断了,暂时没有其他替代参数。
内容的提问来源于stack exchange,提问作者Mike
相关产品推荐
相关产品推荐

