Javascript 增加TCHA到期时间?
如何增加google ReCaptcha的过期时间?我试过一次以下Javascript 增加TCHA到期时间?,javascript,php,jquery,Javascript,Php,Jquery,如何增加google ReCaptcha的过期时间?我试过一次以下 <script> var callback = function() { grecaptcha.render('id-of-render-element', { 'sitekey': 'your-site-key', 'expired-callback': expCallback }); }; var expCallback = fu
<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>
var callback=function(){
grecaptcha.render('id-of-render-element'{
“站点密钥”:“您的站点密钥”,
“过期回调”:expCallback
});
};
var expCallback=函数(){
grecaptcha.reset();
};
但它不起作用。这对我来说在隐形版和复选框版上都有效。我知道你想“增加”时间,但这不是谷歌提供的选项。我只是每5分钟重启一次
setInterval(function(){ grecaptcha.reset(); }, 5 * 60 * 1000 );
// just reset every 5 min
此外,将Google开发者控制台中的“高级”框滑块设置为“最少限制”似乎会有所帮助
请记住,使用新的“不可见”Recapcha,您可能不需要重置或延长时间,除非您有额外的AJAX验证。我注意到,当我使用新的“隐形”方法时,如果我只在表单第一次验证时触发它,框将永远保持良好状态
Q.E.D。
因此,更好的问题解决方案可能是简单地使用此选项
最佳解决方案
<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>
setInterval(函数(){
grecaptcha.ready(函数(){
执行({{env(“GOOGLE\u CAPTCHA\u PUBLIC\u KEY”)}})
.then(功能(令牌){
document.getElementById(“recaptcha_令牌”).value=token;
});
});
}, 30 * 1000);
选自可选。当recaptcha响应过期且用户需要解决新的验证码时,要执行的回调函数的名称。基于此,我认为它必须是'expCallback'
(一个字符串)而不是对函数的引用,但我需要增加过期时间,而不是再次刷新captacha来解决。是否有办法解决此问题?从文档中看,它与此不同。我怀疑谷歌是否有可能做到这一点,因为这可能会影响到成功人士如何使用自动化工具或类似工具破解验证码。请参阅服务器端验证。如果成功的话,在会话中存储一段时间,不要打印recaptcha,应该很简单。