问题标签 [recaptcha-v3]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4399 浏览

javascript - Google Recaptcha V3 - 通过 URL 加载验证码时的小部件 ID

我正在我的网站上实施 Recaptcha V3,如果我的请求失败,我找不到重置令牌的正确方法。

按照文档,要加载recaptcha,我需要在我的页面上包含以下脚本:

此外,我将验证码令牌绑定到一个字段,以便在客户选择发送电子邮件时在我的后端进行验证:

所以我主要有两个步骤:

  1. 验证验证码
  2. 发送电子邮件

如果在第二步中发生了一些错误,我无法找到重置页面上当前验证码的方法,因为如果我再次尝试它已经验证它不再有效。

我试过了grecaptcha.reset(),但没有widgetId出现以下消息:Uncaught Error: No reCAPTCHA clients exist.

通过脚本渲染时如何获取小部件 ID?

0 投票
1 回答
197 浏览

asp.net - 无法为 ASP.net 升级过时的 Google ReCAPTCHA 版本 1

我们目前正在使用 reCAPTCHA 版本 1,并且出现了该错误(reCAPTCHA V1 IS SHUTDOWN)。

我们目前正在为 ASP.Net 使用 Recaptcha.dll(产品版本 1.0.0.0)。
如何将此更新到当前版本。他们的下载页面中没有更新版本的dll。

https://code.google.com/archive/p/recaptcha/downloads

我们目前在标签内使用普通的 reCAPTCHA 控件。

0 投票
3 回答
10670 浏览

php - 如何以 PHP 形式实现 Google Recaptcha v3?

我想在 Recaptcha 的新版本 (V3) 中插入一个联系人。

我寻找了不同的解决方案,但它们只显示了部分代码,它们不完整或我收到错误,并且找到的大多数解决方案对于如此简单的事情来说都非常复杂而且我不理解代码。

0 投票
1 回答
1565 浏览

javascript - 与 Google reCaptcha v3 相关的问题

我想将 reCaptcha 集成到一个网站中,但对它的工作原理有点困惑。

这是我的配置方式:

  1. 在头部添加了这段代码:

    /li>
  2. 在页面加载时使用此代码获取 reCaptcha 响应

  1. 使用此代码验证验证码响应

    /li>

它似乎对我来说很好,我的请求得到了 0.9 分。

问题: 假设验证码因任何原因导致有效用户请求失败(例如 ip 被用于垃圾邮件或任何其他谷歌验证检查失败)。但是用户是合法的,所以:

  1. 用户如何证明他的人性?(就像以前的复选框版本一样)
  2. 如果用户加载注册表并进行其他活动,则用户会在一段时间后(例如 10 分钟)回来。当用户尝试提交表单时,验证码检查将失败。(我试过这个并得到错误'超时或重复')
  3. 有没有办法重新加载验证码,而不需要重新加载页面?

请让我知道,如何克服这些问题?

0 投票
0 回答
2587 浏览

reactjs - 使用 react-google-recaptcha-v3 库

我是新来的反应并尝试使用 react-google-recaptcha-v3 库。

我将它与 formik 表单一起使用并使用 axios 发布数据。当我在我的标题中发布一个硬编码的 recaptcha 令牌时,它会起作用。但是当我尝试将令牌与 react-google-recaptcha-v3 库一起使用时,它不起作用。我想我用错了。

0 投票
1 回答
6563 浏览

php - reCAPTCHA v3 验证分数出现问题

尝试在我的网站联系表单上实施重新验证,除非我将分数设置为 0.0,否则我无法完成任何事情。即使是 0.1 也会将其转为垃圾邮件。有很多关于如何实现的例子,我已经尝试了其中的几个,但没有任何运气(因为有几个也适用于不同的版本,这让我们菜鸟很难)。

无论如何,这是我尝试使用的表单 html 页面的精简版本:

那么我有一个名为 send_form_email.php 的 PHP 表单,我用它来处理所有的繁重工作:

所以这就是我遇到问题的地方。在上面的代码中,我将其设置为 0.0,这是目前电子邮件通过的唯一方式。但是,这当然会让垃圾邮件或真实消息通过,因为它基本上是关闭的。正如我所说,如果我将其设置为 0.1,它就不会通过分数检查,也不会发送电子邮件。我敢肯定,我遗漏了一些简单的东西,或者我没有正确传递信息或其他东西,但谷歌文档并不是很有帮助。所以我希望有人能指出我错过了什么?

谢谢!

0 投票
3 回答
9024 浏览

javascript - reCAPTCHA V3:空闲后如何处理过期令牌?

对于 Google reCAPTCHA V2,当令牌因空闲而过期时该怎么做是很清楚的:客户需要再次单击 reCaptcha 复选框。对于 Google reCAPTCHA V3,情况有所不同,因为不清楚令牌何时因空闲而过期。

对于 reCAPTCHA V3,Google 建议:

https://developers.google.com/recaptcha/docs/v3

  1. 使用您的站点密钥加载 JavaScript api

  2. 在操作或页面加载时调用 grecaptcha.execute // 我们选择页面加载的时间,好吗?

  3. 将令牌发送到您的后端,并请求验证// 单击按钮

好的。如果在页面加载后几分钟点击按钮,我们发送到后端的 V3 令牌已经过期。在这种情况下处理的正确方法是什么?我们是否应该通过每分钟向 Google 发送调用来静默自动更新令牌?这种情况下最好的方法是什么?我没有找到来自 Google 的任何建议。

0 投票
2 回答
2754 浏览

wordpress - 带有 Recaptchav3 的 Contactform7 未显示徽章

我已将多个使用 contactform7 4.9 版的 Wordpress 网站更新为新的 5.1.1 版。有了这个更新,我必须安装新的 Google Recaptcha V3。在大多数情况下,更新不是问题并且运行良好,但是在某些网站中,Recaptcha 徽章(右下角)没有显示在网站的前端......?

我试过谷歌它,但我只能找到想要隐藏徽章的人,但我想显示徽章^^。因为某些网站中缺少徽章,我认为我的配置可能有问题。有什么方法可以检查 Recaptcha 是否按预期工作?或者有人遇到过类似的徽章没有显示的问题?提前致谢!

检查了 grecaptcha-badge 类,但没有'>)

将联系表 7 更新到版本 5.1.1 时。并实施 Recaptcha V3 密钥,网站在前端(右下角)显示 Google Recaptcha 徽章

0 投票
1 回答
3251 浏览

php - Recaptcha V3 并不总是返回分数和结果

我最近尝试在我们的一个网站表单上实施 Recaptcha V3,但遇到了一个错误,它不允许某些用户提交表单,因为它返回错误消息“您已被检测为机器人......”在下面的代码中。

我将所有表单提交打印到日志文件中,每次失败时,$recaptcha->success、$recaptcha->action 和 $recaptcha->score 始终为空。

我发现它经常会为用户工作并发送消息。

我自己测试了表单,大部分时间它都可以正常工作,但我注意到如果我多次尝试提交表单,它偶尔会失败并返回错误。当 $recaptcha->success 失败时,$recaptcha->action 和 $recaptcha->score 始终为空。

我还注意到 $_POST['recaptcha_response'] 在这些情况下似乎是空的,即使它通过了第一个 isset if 语句。

这是我的表格(删除了我的一些其他字段)。请注意,我的表单/页面包含在一个 php 脚本中,我将表单发布到同一个 php 脚本:

我在页面顶部包含了 javascrit,我在发布此内容时删除了我的站点密钥:

0 投票
1 回答
914 浏览

laravel - 在带有 ReCaptcha V3 的 Laravel 中,如何访问从规则返回的“分数”?

Laravel中,我正在设置Google ReCaptcha V3,它现在返回一个“分数”。我设法设置了一个验证规则以允许我的表单提交(所有工作),但这只是返回 true 或 false 以通过验证。

我如何根据分数来代替?

我正在使用这个作曲家包来帮助我 - https://github.com/google/recaptcha

这是在我的控制器中(我正在发送令牌以通过服务器验证):

这是规则:

我可以从控制器以某种方式访问​​该类吗?我可以在包中看到我需要使用->getScore()但我不知道如何访问它?