我已经在一个网站上实施了 Google reCaptcha V2(不可见),它被用来保护登录。登录请求通过 async 发送到身份验证服务,该服务返回成功状态等。
问题是,如果用户在他们的输入被 reCaptcha 验证后第一次尝试登录失败,那么在随后的任何详细信息尝试中,它都会正确命中 greCaptcha.execute() 命令,但这就是它结束的地方......至少几分钟。
在“错过几秒钟”的那段时间里,reCaptcha 服务似乎停止了,我的网站最终等待 500 多毫秒才能得到响应......
大约 2m 之后,reCaptcha 突然响应加载到页面中的一堆资源,从标记和找到的资源来看,这些资源似乎是预期的 reCaptcha 挑战弹出窗口。虽然此弹出窗口实际上并未出现,但再次单击登录会按最初预期继续,验证码已验证并且登录正常进行。
如果结果是成功的,则用户已登录并且该站点继续按预期运行 - 即使在各种形式的其他 reCaptcha 等情况下也是如此。
如果用户不成功......停止再次发生......一次又一次......直到所述用户成功登录。
这显然不是一个很好的用户体验,并且没有返回任何反馈或异常,对 reCaptcha.execute() 的请求只是消失在一个空白中,直到 reCaptcha 在 500 毫秒后响应。
任何想法为什么 reCaptcha 以这种方式失败?