Вопрос или проблема
Я пытаюсь добавить ReCaptcha v3 на сайт, который я администрирую.
Когда я открываю страницу с капчей, блок капчи отображает «Ошибка: Недействительный ключ».
Я уже в третий раз пере-регистрировал ключ для этого сайта, но ошибка сохраняется. Я сделал всё по инструкции, вот исходные данные:
<div class="form-wrp">
<script src="https://www.google.com/recaptcha/api.js?render=6LduVFIqAAAAAFOgQFfTVM3UJHBYWNMkbm5Ptohv"></script>
<form id="order_mail" action="/order/mail" method="post">
<h2 class="center">Обратная связь</h2>
<fieldset>
<input type="text" name="email" placeholder=" " id="inp4"/>
<label for="inp4">Email или телефон для ответа</label>
</fieldset>
<fieldset>
<!--<input type="text" name="message" placeholder=" " id="inp5"/>-->
<textarea name="message" placeholder=" " id="inp5" required="required"></textarea>
<label for="inp5">Сообщение</label>
</fieldset>
<fieldset>
<div class="g-recaptcha" style="width:304px; margin:0 auto;" data-sitekey="6LduVFIqAAAAAFOgQFfTVM3UJHBYWNMkbm5Ptohv" data-callback="onOrderMailSend" data-action="submit"><!--секретный ключ --></div>
</fieldset>
<fieldset>
<input type="submit"/>
</fieldset>
</form>
</div>
Как это исправить?
- Я пытался заменить открытый ключ на случайную строку, тогда ошибка не отображалась. Но решить капчу не удалось.
- Я пробовал снова зарегистрировать ключ капчи. Ошибка сохраняется.
Ответ или решение
Ошибка "Некорректный ключ" в Google reCAPTCHA v3 может быть вызвана несколькими причинами. Давайте разберемся, каковы могут быть источники этой проблемы и как их исправить.
1. Проверка ключей
- Убедитесь, что вы используете правильные ключи сайта и секретный ключ, которые соответствуют вашему домену. Если вы переименовывали или изменяли домен в процессе регистрации, это может привести к появлению ошибки.
2. Доменные настройки
- Когда вы регистрируете ключи для reCAPTCHA, убедитесь, что указали соответствующие домены в разрешенных доменах. Например, если вы используете
localhost
для разработки, обязательно добавьте его в список доменов.
3. Неправильное место размещения скрипта
- Убедитесь, что скрипт
<script src="https://www.google.com/recaptcha/api.js?render=ВАШ_КЛЮЧ">
загружается до вашего кода формы. Если скрипт загружается после, это может привести к проблемам.
4. Проверка идентификатора reCAPTCHA
- В вашем коде вы используете:
<div class="g-recaptcha" data-sitekey="6LduVFIqAAAAAFOgQFfTVM3UJHBYWNMkbm5Ptohv"></div>
Убедитесь, что
data-sitekey
совпадает с тем, который был выдан для вашего домена. Либо это может быть ключ для другого проекта, либо вы могли создать его несколько раз, и используете неверный.
5. Ошибки в консоли
- Откройте инструменты разработчика в браузере (обычно доступно через F12) и проверьте консоль на наличие каких-либо ошибок JavaScript, которые могут быть связаны с загрузкой reCAPTCHA.
6. Caching и регулярные обновления
- Если вы используете кэширование (например, на стороне сервера или через плагин в CMS), убедитесь, что вы обновили кэш после изменения ключей или регистрации.
7. Использование разных браузеров и очистка кэша
- Попробуйте обновить страницу в другой вкладке или браузере, или очистите кэш браузера, чтобы исключить возможные проблемы с кэшированием.
8. Проверка работы API
- Если у вас есть доступ к серверной части, вы можете использовать
fetch
или другой метод для отправки запросов к Google API reCAPTCHA с вашим секретным ключом, чтобы проверить, корректно ли обрабатываются запросы.
Пример проверки API:
const secret = 'ВАШ_СЕКРЕТНЫЙ_КЛЮЧ';
const response = req.body['g-recaptcha-response'];
const verificationUrl = `https://www.google.com/recaptcha/api/siteverify?secret=${secret}&response=${response}`;
fetch(verificationUrl, {
method: 'POST'
})
.then(response => response.json())
.then(data => {
// Обрабатываем данные
});
Итог
Если после выполнения всех предложенных шагов ошибка "Некорректный ключ" продолжает появляться, рекомендуется обратиться в поддержку Google reCAPTCHA, возможно, ваш проект или ключ были заблокированы по какой-то причине.
Поддержите ваш код актуальным, следуя документации Google, и убедитесь, что все ключи и домены правильно настроены.