在Razor注册页面Asp.Net Core 3中使用Google Recaptcha v3

我已经在自己的网站上实现了Google的recaptcha v3。我已经将localhost,sitename.azurewebsites.net和sitename.com添加到了Recaptcha设置页面上的域列表中。

该代码在localhost上的开发中工作正常,但是每次在azure发布站点和实际站点上均失败。该操作始终为空,因此分数始终为空。

出于示例目的,这是在注册表上的实现方式

 grecaptcha.ready(function () {
        grecaptcha.execute('sitekeyhere',{ action: 'register' })
            .then(function (token) {
                $.getJSON("/Home/RecaptchaV3Verify?token=" + token,function (data) {
                        var score = data.score;
                        $("#RecaptchaScore").val(score);
                        console.log("Score is:" + score);
                        console.log(data);
                    });
            });
    });

这是同时检查验证码,我的数学验证码和Google v3验证码得分的脚本

function check() {
        var $errMessage = "Your captcha score indicates you are possibly a bot,form not submitted.";
        var $answerValue = $("#realAnswer").val();
        var $userInput = $("#ans").val();
        var googleScore = parseFloat($("#RecaptchaScore").val());

        if ($answerValue === $userInput && googleScore > 0.65) {
            $("#register-form").submit();               
        }

        $("#register-errors").append(
            "<ul><li>" + $errMessage + "</li></ul><br />");

        return false;
    }

这是来自本地主机的控制台日志

  

得分是:0.9

     

[对象对象]:{操作:“注册”,错误代码:null,得分:0.9,成功:正确}

这是来自sitename.azurewebsites.net的控制台日志,是的,我已经确认视图源中的脚本与本地主机中的脚本相同。

  

得分是:0

     

[对象对象]

,结果与sitename.com相同

任何人都可以解释这种现象并可能有解决方案吗?我已经花了很多时间在这上面。我的猜测是第一个脚本中方法的路径仅可通过localhost使用,但是如何使其在生产环境中可用?

gaoyuanzhiyun 回答:在Razor注册页面Asp.Net Core 3中使用Google Recaptcha v3

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3163108.html

大家都在问