Я использую Recaptcha V3 на своем сайте, и я не смог найти правильный способ сброса токена, если мой запрос не удался.
Следуя документации, для загрузки рекапчи мне нужно включитьследующий скрипт на моей странице:
<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.
Как получить идентификатор виджета при рендеринге через скрипт?