验证reCAPTCHA v3时返回browser-error错误的原因分析
解决reCAPTCHA v3验证返回browser-error的方案
可能的原因及修复步骤
- 确认token生成环境:browser-error核心原因是token未在标准浏览器环境生成,或是生成时未满足reCAPTCHA的浏览器约束。必须确保token是前端通过
grecaptcha.execute()在用户真实浏览器中生成的,禁止使用服务器端模拟、离线生成的无效token。 - 修正请求格式:
- 验证请求必须使用POST方法,不能用GET。
- 请求体需以
application/x-www-form-urlencoded格式传递参数,而非JSON格式。正确的参数结构应为secret=你的密钥&response=用户提交的token,你当前用JSON请求体是错误的。
- 检查token有效期:reCAPTCHA v3的token仅在生成后2分钟内有效,需确保验证请求在有效期内发送。
- 校验前端集成逻辑:前端需正确加载reCAPTCHA脚本,在
grecaptcha.ready()回调内执行execute,且前端site key与服务器端secret key必须属于同一项目。
正确的验证请求示例
# 用curl发送符合要求的POST请求 curl -X POST https://www.google.com/recaptcha/api/siteverify \ -d "secret=你的secret-key" \ -d "response=用户提交的recaptcha-token"
内容的提问来源于stack exchange,提问作者erfin
相关产品推荐
相关产品推荐

