Har*_*iec 5 javascript token recaptcha recaptcha-v3
对于Google reCAPTCHA V2,很清楚当令牌由于闲置而过期时该怎么办:客户可以进行更改,再次单击reCaptcha复选框。对于Google reCAPTCHA V3,有所不同,因为尚不清楚令牌是否由于空闲而过期。
对于reCAPTCHA V3,Google建议:
https://developers.google.com/recaptcha/docs/v3
使用sitekey加载JavaScript api
在操作或页面加载时调用grecaptcha.execute //我们选择页面加载的时间,好吗?
好。如果在加载页面后几分钟点击了该按钮,则我们发送到后端的V3令牌已经过期。在这种情况下应对的正确方法是什么?我们是否应该每分钟通过发送呼叫给Google来无声地自动更新令牌?这种情况下最好的方法是什么?我没有找到Google的任何建议。
令牌必须晚于页面加载生成。它应该在我们将其发送到后端之前生成。换句话说,我们点击按钮(来自我的例子),然后获取生成的令牌,然后将令牌发送到后端。
此解决方案有意义并解决了我的问题。
小智 5
由于 reCAPTCHA 令牌在两分钟后过期,这就是我让它工作的方式:
第 1 步:在页面加载时加载验证码令牌(像往常一样)
步骤2:使用SetInterval函数每90秒重新加载令牌,以便reCAPTCHA令牌在2分钟后过期之前刷新。
//Onload
grecaptcha.ready(function () {
grecaptcha.execute("YOUR_KEY_HERE", {action: "request_call_back"}).then(function (e) {
$("#YOUR_FIELD_NAME_ID").val(e);
});
});
//Every 90 Seconds
setInterval(function () {
grecaptcha.ready(function () {
grecaptcha.execute("YOUR_KEY_HERE", {action: "request_call_back"}).then(function (e) {
$("#YOUR_FIELD_NAME_ID").val(e);
});
}, 90 * 1000);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1135 次 |
| 最近记录: |