隐形的recaptcha"我们检测到您的网站未验证reCAPTCHA解决方案"

时间:2018-05-04 09:46:46

标签: javascript callback recaptcha

我在我的网站上的rhe登录页面上实施了隐形的recaptcha,遵循关于如何自动将挑战自动绑定到按钮的官方指南": https://developers.google.com/recaptcha/docs/invisible#auto_render

我的html页面是这样制作的:

    <head>
[...]
        <script src="js/login.js"></script>
        <script src="https://www.google.com/recaptcha/api.js" async defer></script>
    </head>
    <body>
[...]
            <button type="submit" class="g-recaptcha btn btn-primary" data-sitekey="[...]" data-callback="checkCaptcha" id="loginSubmit">Login <i class="fas fa-sign-in-alt"></i></button>
[...]
    </body>
    </html>

,而javascript文件是:

    function checkCaptcha(token) {
        console.log("re-captcha callback invoked.");
        login();
    }


    function login() {
[...]
}

但是在Google的面板页面上,我一直在留言 &#34;我们检测到您的网站未验证reCAPTCHA解决方案。这是在您的网站上正确使用reCAPTCHA所必需的。有关详细信息,请参阅我们的开发者网站。&#34;

有人可以帮助我理解我的错误吗?

非常感谢你的建议。

1 个答案:

答案 0 :(得分:1)

当用户在您的html网页上解决验证码拼图(或点击提交按钮)时,Google recaptcha会为您的<form> g-recaptcha-response添加另一个隐藏的输入值,或者解析给定的{{1}功能。它包含一个字符串值,您应该将其发送回Google以验证服务器端的响应。

如果没有服务器端验证部分,recaptcha就没用了。 API请求详细信息如下,

网址:https://www.google.com/recaptcha/api/siteverify
方法:GET / POST(推荐)

参数:

  • 秘密(必填。您的网站与reCAPTCHA之间的共享密钥。)
  • 响应(必需。由reCAPTCHA提供的用户响应令牌,验证您网站上的用户。)
  • remoteip (可选。用户的IP地址。)

请阅读Verifying the user's response上的Google文档,了解详情。