在reCAPTCHA v3中如何处理低分?

时间:2019-09-18 17:47:24

标签: asp.net-mvc recaptcha-v3

我已经在我的ASP.NET MVC项目上设置了reCAPTCHA v3。一切正常,并且正在正确传回数据。

所以下面的代码取决于我拥有的另一个dll,但是基本上,响应以对象的形式返回,该对象显示JSON请求传回的所有内容,如https://developers.google.com/recaptcha/docs/v3

所述

一切正常。

但是现在我知道响应是成功的,并且我得到了分数,我该怎么办?如果分数等于或小于0.3会怎样?有人建议还设置v2进行二次验证(即“选择这张图片中的所有停车标志”或“键入您看到的单词”)。那真的是唯一的“好”选择吗?

显然,代码还不是很完美。我可能会通过AJAX调用而不是控制器来处理解决方案,但是仍然可以。如果分数低怎么办?

我读了这篇文章 reCaptcha v3 handle score callback 有点帮助,但我仍在努力理解。我不一定需要代码(尽管它永远不会造成伤害),而只是关于操作的建议。

查看:

<script src="https://www.google.com/recaptcha/api.js?render=@Session["reCAPTCHA"]"></script>

grecaptcha.ready(function () {
    grecaptcha.execute('@Session["reCAPTCHA"]', { action: 'homepage' }).then(function (token) {

        $.ajax({
            type: "POST",
            url: "Home/Method",
            data: JSON.stringify({token: token }),
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (response) {
                console.log('Passed the token successfully');
            },
            failure: function (response) {
                alert(response.d);
            }
        });
  });
  });

控制器:

[HttpPost]
     public void ReCaptchaValidator(string token)
    {
        ReCaptcha reCaptcha = new ReCaptcha();
        Models.ReCaptcha response = new Models.ReCaptcha();          
        response = reCaptcha.ValidateCaptcha(token);
        //response returns JSON object including sucess and score

        if (response.Success)
        {
             //WHAT DO I DO HERE????
        }
    }

1 个答案:

答案 0 :(得分:0)

最终从另一个论坛获得了答案。基本上,答案是“您想要的任何东西”。传递成功的答案没有对与错。

那么可以做的是,如果响应成功并且CAPTCHA不抛出标志,则不执行任何操作。但是,如果CAPTCHA不满意,则可以显示警告或标语“无法处理”,或者甚至可以添加CAPTCA版本2,这将使他们进行图片测试或“我不是机器人”复选框等等