Google recaptcha v3 проблемы
Почему recaptcha v3 выдает ошибку? ... когда я проверяю человечность посетителя второй раз на той же странице?
Токен явно НЕ дубликат. ... так что такое дубликат?
Первый токен:
03AEMEkEl76Kn0nMhKlgY8dMOAD2g3zGIHoGOqz95jEFKl8A24gADw-2gBipDYcU7G_TWSqpuWyNa62CIk-tYdreevde0p1lJg_3wwZlmD9giDSdPb_He-mTsIqv0tMuEroJLLArCI4vfbZjcCZ6BYokYEhYbCU-Qqdx9YbqgRG1JJDxE8LRagR0cPY8mfQZ5bZ7KGK8Dfqe8avqOy18RvIcYk-H6s9Bhq28s5YRIkHid163c-yqpeY8U5j9U70aveSuEcLz-UMlgsQ8MaYhHIIv7cJpag2RJFAgGxOZnWONEk2Z9-IK_Ea_4
recaptcha v3 Ответ:
{
"score":0.1,
"hostname":"localhost",
"success":true,
"challenge_ts":"2018-07-17T21:24:03Z",
"action":"AW___________LGOZCKiH_oQBEJnwwYcD"
}
Второй токен на той же странице с тем же ярлыком:
03AEMEkEk-CVItfMmzYErG97inmxzf7mIeWuAgEXmwncu8AvMGP0ofXnwCMFNdBpa7CY8MCkVZ_skiF1HwmGhKBgayFm-fM3VM_QfM5LRNDbxLLyCF8lGclmBBlihmkeT1PsvW9LrVfp2VdikuHxeqvviGnI2NKQHbclvaDnuu5rwy3HS_EiPrn7eJb3z892f8oIOMkVg6tTsCNPCTnH5QuvAIw2DlI3EiRFDSqIjXp4vJdzJIGn10K6Noi1JIPOCzJ8OUshn_yFROWvNNpYNFn3E7tSHk3j0LU9-KDy1RiSoEf2I1VcVEKTE
recaptcha v3 Ответ:
{"error-codes":["timeout-or-duplicate"],"success":false}
1 ответ
Да, это код ошибки, который мы получаем в двух случаях. 1) Когда мы отправляем один и тот же токен для двух запросов 2) Срок действия токена истекает через каждые 3 минуты. Таким образом, если пользователь не отправит форму в течение 3 минут, токен истекает, и мы получаем это сообщение об ошибке.
Токен мог истечь. Это случилось со мной тоже. При рендеринге страницы был сгенерирован токен, но я выполнил действие через долгое время. Тогда это дало мне эту ошибку. Но если токен генерируется при выполнении действия, он работает нормально.
У меня была похожая проблема, но я понял, что это плохое понимание. Это сообщение об ошибке возникает в следующих случаях: 1. Токен уже был проверен, поэтому он становится "дубликатом".
- Токен был выполнен за 3 минуты или более до того, как он был проверен, поэтому он становится "тайм-аутом".
Что касается второго сценария, идея состоит в том, чтобы проверить действие при его выполнении. Это означает, что если вы хотите проверитьsubmit
операции, то вам может потребоваться сгенерировать токен для проверки при отправке, а не сразу после того, как объект grecaptcha будет готов.
В онлайн-документации есть пример, гдеexecute
методы вызываются сразу после того, как grecaptcha готова, но это тот случай, когда вы хотите сразу проверить выполнение. В случае формуляров метод execute должен быть помещен в ту же процедуру, что и отправка формы, имеет смысл? Возможно, я ошибаюсь, но мне удалось проверить действия щелчка, действия отправки формы, действия закрытия всплывающих окон, вы называете их.
Генерация токена monstor captcha во время загрузки страницы определенно не является хорошей идеей, так как срок ее действия истекает через 2 минуты. Если вы по-прежнему обязаны это сделать, вам необходимо обновить токен через определенные промежутки времени, используя команду setinterval в JavaScript.
Таким образом, чтобы сгенерировать токен при нажатии кнопки "Выполнить", ваша работа будет лучше. Вы можете вызвать ajax- или java-скрипт для вызова метода execute. Пожалуйста, обратитесь к документации google reCAPTCHA v3 для получения дополнительной информации.