Chi*_*que 12 recaptcha recaptcha-v3
从某个时候起,我在 Web 应用程序(Node 后端、HTML / JS 前端)上进行 ReCaptcha 验证期间收到错误代码浏览器错误。
此线程此处解释了这是由于未在 ReCaptcha Enterprise 白名单中添加域而导致的错误。但是,我没有使用 ReCaptcha Enterprise。我只使用 ReCaptcha v3。并且在文档中没有提及错误代码。
我已在 ReCaptcha 控制台中正确添加了我的域名。
还有另一个线程,用户发现它主要发生在 Safari 中。但是,没有提供任何解决方案。
我认为简单地忽略后端的这个错误并不是正确的解决方案。
为什么会出现“浏览器错误”错误?解决这个问题的正确步骤是什么?
我发现了一个潜在原因:用户浏览器中与 ReCaptcha 的连接失败。
\n我使用 Chrome 中的“网络请求阻止”功能验证了这一点。当连接被阻止时,recaptcha.execute()返回一个令牌,但该令牌是BROWSER_ERROR在后端验证时生成的。我想超时或其他网络问题也会以类似的方式失败。
至于如何处理\xe2\x80\xa6\n理想情况下,前端能够检测到这种情况,只需execute()再次调用即可重试。不幸的是,在前端很难区分成功和失败。您可能会考虑使用错误回调:
grecaptcha.enterprise.execute(siteKey).then(\n token => console.log(\'OK\', token),\n err => console.log(\'fail\', err)\n);\nRun Code Online (Sandbox Code Playgroud)\n\xe2\x80\xa6 但这并没有帮助,因为成功和失败都会调用相同的“OK”回调。我确实注意到了token.length不同之处:成功得分约为 1720 字节,错误约为 490 字节。但依赖此属性可能不安全。
因此,您似乎需要将令牌传递到后端服务,并在那里进行验证,然后您才能知道前端是否需要重试。
\n(全面披露:我正在使用 ReCaptcha Enterprise)
\n| 归档时间: |
|
| 查看次数: |
4951 次 |
| 最近记录: |