reCAPTCHA Enterprise,变得无效_原因:6

问题描述 投票:0回答:1

我正在使用 reCAPTCHA enterprise 开发一个 Web 应用程序(基于分数,而不是基于清单)。一切都已集成,当我测试它时,我经常收到带有 invalid_reason“6”的 reCAPTCHA 错误。然而,“6”并未在我正在使用的 Google Cloud API Go 库中注册。它超出了库中支持的枚举值(从包 recaptchaenterprise 包中提取):

TokenProperties_InvalidReason_name = map[int32]string{
        0: "INVALID_REASON_UNSPECIFIED",
        1: "UNKNOWN_INVALID_REASON",
        2: "MALFORMED",
        3: "EXPIRED",
        4: "DUPE",
        5: "MISSING",
    }

这是来自

v1
包。我猜
v1beta1
包将使用
v1beta1
API。使用这个包,我得到 invalid_reason "7",再次超出支持的枚举值:

    TokenProperties_InvalidReason_name = map[int32]string{
        0: "INVALID_REASON_UNSPECIFIED",
        1: "UNKNOWN_INVALID_REASON",
        2: "MALFORMED",
        3: "EXPIRED",
        4: "DUPE",
        5: "SITE_MISMATCH",
        6: "MISSING",
    }

查看 https://cloud.google.com/recaptcha-enterprise/docs/reference/rest/v1/projects.assessments#invalidreason 上的文档,InvalidReason 有 7 个可能的值。该错误可能是 BROWSER_ERROR,我不确定为什么。

但情况并非总是如此。有时可以进行评估并返回分数。这是一个配置为始终返回 0 分数的开发站点密钥。然而很多次我都得到了奇怪的回应。

我看到的一种模式是它在一个网络中成功,而在另一个网络中失败。我尝试在 localhost 中创建一个运行 Web 服务和后端服务的设置,并且通过 wifi 连接成功,但通过移动连接则失败。将网站部署到其他地方我也遇到同样的错误。目前我所知道的是这个错误是片状的,不确定它是否与网络有关。

我已禁用此密钥的域验证。

编辑:我创建了另一个不是测试密钥的密钥。结果还是一样。我无数次修改域名验证,无数次换域名,结果还是一样。

我观察到的一个模式是

grecaptcha.enterprise.execute
有时会抛出超时错误。这是一个例外,因此脚本将会中断。我不知道它在做什么,但是如果第一次,
execute
运行几秒钟,就会生成一个令牌,但在评估过程中会失败。如果第一次快速生成令牌(不到一秒),则它将成功。成功的尝试大多只发生在本地部署中,其中我使用相同的域(我通过将域放在 /etc/hosts 中来使用静态 DNS)。

没有文档提到如何解决这个问题。看来我们最好还是使用 hCaptcha 来代替。

go recaptcha recaptcha-enterprise
1个回答
0
投票

我遇到了同样的问题,直到我遇到这个答案,它指出我没有在google控制台中注册域名。

我添加了域名,一切正常。

© www.soinside.com 2019 - 2024. All rights reserved.