我增加了隐形reCaptcha V3到asp.net核心6.0角SPA。
. . .
<input type="hidden" name="captcha" id="captchaInput" value="" />
</form>
. . .
@section Scripts {
<script src="https://www.google.com/recaptcha/api.js?render=@Configuration["Recaptcha:siteKey"]"></script>
<script>
grecaptcha.ready(function() {
grecaptcha.execute('@Configuration["Recaptcha:siteKey"]', { action: 'contact' }).then(function (token) {
$("#captchaInput").val(token);
});
});
</script>
<partial name="_ValidationScriptsPartial" />
}政务司司长
if (ModelState.IsValid)
{
if (!await _captchaValidator.IsCaptchaPassedAsync(captcha))
ModelState.AddModelError("captcha", "Captcha validation failed");有reCaptcha验证器注入的OIDC控制器。
一切都正常。直到验证失败(例如,低分数)。
用户不能从这一点出发.
我希望captcha成为常规可见的挑战.
--我需要一个可行的解决方案--如何给用户第二次机会来证明他们不是机器人,以防reCaptcha v3验证失败(不管是什么原因)。
贷记:
发布于 2021-11-23 10:47:26
想想看,这里有一些问题。
我应该使用什么reCaptcha?
那么,..。
。
score。一个太低的分数使false在success。true或false的限值应设置为https://g.co/recaptcha/admin/。这不需要代码/配置更新。否则,您可以通过Task<JObject> GetCaptchaResultDataAsync(string token)获得整个响应对象,并自己处理对象的score值。在这种情况下,应手动更改限值(代码或配置).NB!在您的网站工作,价值可能会改变!这取决于用户的行为,他们的网络速度,软件,.
NB!初始的gReCaptcha V3分数值是0.5__。你可以在控制台上玩。
如果
对于QA来说,实现passway以避免reCaptcha检查是有意义的。不同的构建/信任(QA手册)或端点/附加密码(QA自动)覆盖或跳过await _captchaValidator.IsCaptchaPassedAsync(captcha)结果。
https://stackoverflow.com/questions/69898948
复制相似问题