Google reCAPTCHAコンポーネントを使用していますが、セッションタイムアウトを増やすように求められました。私はこれに対する解決策を見つけることができませんでした。それはできますか?どうもありがとう。
ReCAPTCHAチャレンジはGoogleから提供されるため、これに対する解決策はありません。セッションはアプリとユーザーの間ではなく、reCAPTCHAサービスとユーザーの間で行われます。 reCAPTCHAをマルチテナントWebアプリ(各テナントはそれを表示しているサイト)と考えてください。各テナントで使用できる設定は、認証キーと表示する必要のあるチャレンジのタイプのみです。
1つの解決策は、フォームの送信方法を変更することです。可能であれば、reCaptcha送信をセカンダリサーバー側のページに移動します。これにより、Googleとのやり取りがすぐに行われる新鮮な状態が生まれます。
長いフォーム(複数のタブ)でも同じ問題が発生しました。フォームを2次処理ページに投稿すると、reCaptchaをすぐに処理して、この問題を解決できます。
私は通常このJavaScriptを使用します
<script>
function reload_recaptcha(grecaptcha) {
grecaptcha.execute('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', { action: 'homepage' }).then(function (token) {
console.log("TOKEN: [" + token + "]");
var inputF = document.getElementById("retoken");
inputF.setAttribute("value", token);
});
}
function reload_recaptcha_wrapper() {
reload_recaptcha(document.grecaptcha);
setTimeout(reload_recaptcha_wrapper, 45000);
}
grecaptcha.ready(function () {
document.grecaptcha = grecaptcha;
reload_recaptcha(document.grecaptcha);
});
setTimeout(reload_recaptcha_wrapper, 45000);
</script>