1

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

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

<script src='https://www.google.com/recaptcha/api.js?render=MY_KEY'></script>

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

    grecaptcha.ready(function() {
        grecaptcha.execute('MY_KEY', {
            action : 'homepage'
        }).then(function(token) {
            $("#recaptcha").val(token);
        });
    });

所以我主要有两个步骤:

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

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

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

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

4

1 回答 1

6

据我从 Recaptcha V3 了解到,您必须再次调用 execute 尝试这样做

let createNewToken = () => {
        grecaptcha.ready(function() {                   
            grecaptcha.execute('code', {action: 'homepage'}).then(function(token) {
                 console.log(token);
            });
         });        
}
于 2018-12-23T21:10:29.613 回答