我正在我的网站上实现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);
});
});
所以我主要有两个步骤:
如果在第二步过程中发生了一些错误,我将无法找到一种方法来重置页面上的当前验证码,因为如果我再试一次,该验证码已经过验证。
我尝试过grecaptcha.reset()
,但是没有widgetId
时,会出现以下消息:Uncaught Error: No reCAPTCHA clients exist.
通过脚本渲染时如何获取小部件ID?
答案 0 :(得分:1)
据我从Recaptcha V3的了解,您必须再次调用execute 尝试这样做
let createNewToken = () => {
grecaptcha.ready(function() {
grecaptcha.execute('code', {action: 'homepage'}).then(function(token) {
console.log(token);
});
});
}