[英]Increase ReCaptcha expiration time?
如何增加谷歌 ReCaptcha 的过期时间? 我试过下面一个,
<script>
var callback = function() {
grecaptcha.render('id-of-render-element', {
'sitekey': 'your-site-key',
'expired-callback': expCallback
});
};
var expCallback = function() {
grecaptcha.reset();
};
</script>
<div id="id-of-render-element"></div>
<script src="https://www.google.com/recaptcha/api.js?onload=callback&render=explicit" async defer></script>
但它不起作用。
这在 Invisible 和 Checkbox 版本上都对我有用。 我知道您想“增加”时间,但这不是 Google 提供的选项。 我只是每 5 分钟重新启动一次盒子。
setInterval(function(){ grecaptcha.reset(); }, 5 * 60 * 1000 );
// just reset every 5 min
此外,将 Google Developer Console 中的“高级”框滑块设置为“最少限制”似乎也有帮助。
请记住,除非您有额外的 AJAX 验证,否则您可能不需要重置或延长时间,使用新的“Invisible” Recapcha。 我注意到,当我使用新的“隐形”方法时,如果我只在首先验证表单时触发它,那么该框将永远保持良好状态。
QED 一个更好的问题解决方案可能很容易使用这个https://developers.google.com/recaptcha/docs/invisible#auto_render
最佳解决方案
<input type='hidden' name='recaptcha_token' id='recaptcha_token'>
<script src="https://www.google.com/recaptcha/api.js?render={{ env("GOOGLE_CAPTCHA_PUBLIC_KEY") }}"></script>
<script>
setInterval(function () {
grecaptcha.ready(function() {
grecaptcha.execute('{{ env("GOOGLE_CAPTCHA_PUBLIC_KEY") }}')
.then(function(token) {
document.getElementById("recaptcha_token").value = token;
});
});
}, 30 * 1000);
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.