Использование reCAPTCHA на локальном хосте

Я разрабатываю веб-сайт с использованием PHP, и я хочу сделать проверку человека на одной из сессий. Для разработки я изначально запускаю систему локально, и когда она будет готова, я собираюсь включить ее в определенный домен.

На веб-сайте reCAPTCHA говорится, что плагин будет работать только в данном домене (и поддоменах).

Мой вопрос: есть ли способ использовать плагин reCAPTCHA на локальном хостинге?

Ответ 1

Обновить

Исходный ответ больше не правильный. В руководстве разработчика теперь говорится:

"Если вы хотите использовать" localhost "для разработки, вы должны добавить его в список доменов".

Это будет работать, только если вы используете localhost, используя 127.0.0.1/... а не localhost/...

Исходный ответ сохраняется ниже.


Согласно Руководству разработчика reCAPTCHA:

"Домены localhost больше не поддерживаются по умолчанию. Если вы хотите продолжить их поддержку для разработки, вы можете добавить их в список поддерживаемых доменов для вашего ключа сайта. Перейдите в консоль администратора, чтобы обновить список поддерживаемых доменов. используйте отдельный ключ для разработки и производства и не позволяйте локальному хосту на вашем рабочем сайте ключом ".

Другими словами, просто используйте один и тот же ключ.

Ответ 2

Обратите внимание, что с 2016 года ReCaptcha больше не поддерживает локальную версию. Из FAQ:

Локальные домены больше не поддерживаются по умолчанию. Если вы хотите продолжать поддерживать их для развития, вы можете добавить их в список поддерживаемых доменов для вашего ключа сайта. Перейдите в консоль администратора, чтобы обновите список поддерживаемых доменов. Мы рекомендуем использовать отдельный ключ для разработки и производства и не позволять localhost на вашем производственный сайт.

Так что просто добавьте localhost в свой список доменов для своего сайта, и вы будете хорошо.

Ответ 3

Это так просто:

введите описание изображения здесь


Update:

Если у вас вопрос, как установить reCaptcha на сайте Google для его использования в локальном хосте, то я написал его выше, но если вам интересно, как вы можете использовать reCaptcha для localhost и website host минимальными кодами в контроллере и не допускайте в нем некоторых кодов, таких как ConfigurationManager.AppSettings["ReCaptcha:SiteKey"], после чего я помогу вам с этим дополнительным описанием и кодами в моем ответе.

Вам нравятся следующие действия GET и POST?

Он поддерживает reCaptcha и не нуждается в других кодах для обработки ReCaptcha.

[HttpGet]
[Recaptcha]
public ActionResult Register()
{
    // Your codes in GET action
}

[HttpPost]
[Recaptcha]
[ValidateAntiForgeryToken]
public ActionResult Register(RegisterViewModel model, string reCaptcha_SecretKey){
   // Your codes in POST action
   if (!ModelState.IsValid || !ReCaptcha.Validate(reCaptcha_SecretKey))
   {
       // Your codes
   }
   // Your codes
}

В Вид: (ссылка)

@ReCaptcha.GetHtml(@ViewBag.publicKey)

@if (ViewBag.RecaptchaLastErrors != null)
{
    <div>Oops! Invalid reCAPTCHA =(</div>
}

Использовать его

A) Добавьте в свой веб-проект следующий ActionFilter:

public class RecaptchaAttribute : FilterAttribute, IActionFilter
{
    public void OnActionExecuting(ActionExecutingContext filterContext)
    {
        var setting_Key = filterContext.HttpContext.Request.IsLocal ? "ReCaptcha_Local" : "ReCaptcha";
        filterContext.ActionParameters["ReCaptcha_SecretKey"] = ConfigurationManager.AppSettings[$"{setting_Key}:SecretKey"];
    }

    public void OnActionExecuted(ActionExecutedContext filterContext)
    {
        var setting_Key = filterContext.HttpContext.Request.IsLocal ? "ReCaptcha_Local" : "ReCaptcha";
        filterContext.Controller.ViewBag.Recaptcha = ReCaptcha.GetHtml(publicKey: ConfigurationManager.AppSettings[$"{setting_Key}:SiteKey"]);
        filterContext.Controller.ViewBag.publicKey = ConfigurationManager.AppSettings[$"{setting_Key}:SiteKey"];
    }
}

B) Добавьте ключи настроек reCaptcha для localhost и website, как это в вашем файле webconfig:

<appSettings>

    <!-- RECAPTCHA SETTING KEYS FOR LOCALHOST -->
    <add key="ReCaptcha_Local:SiteKey" value="[Localhost SiteKey]" />
    <add key="ReCaptcha_Local:SecretKey" value="[Localhost SecretKey]" />
    <!-- RECAPTCHA SETTING KEYS FOR WEBSITE -->
    <!--<add key="ReCaptcha:SiteKey" value="[Webite SiteKey]" />
    <add key="ReCaptcha:SecretKey" value="[Webite SecretKey]" />-->

    <!-- OTHER SETTING KEYS OF YOUR PROJECT -->

</appSettings>

Примечание.. Таким образом, вам не нужно было устанавливать параметр reCaptcha_SecretKey в post post или any ViewBag для reCaptcha вручную в ваших действиях и представлениях, все они будут заполняться автоматически в runtime с соответствующими значениями в зависимости от того, как вы запустили проект на локальном хосте или веб-сайте.

Ответ 4

Это сработало для меня:

"С помощью следующих тестовых ключей вы всегда получите No CAPTCHA, и все запросы на проверку пройдут.

Ключ сайта: 6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI

Секретный ключ: 6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe

Виджет reCAPTCHA будет отображать предупреждающее сообщение о том, что он предназначен только для целей тестирования. Пожалуйста, не используйте эти ключи для своего производственного трафика. "

Извлечено отсюда: https://developers.google.com/recaptcha/docs/faq

BR!

Ответ 5

Недавно Google изменил режим остановки, разрешив по умолчанию использовать localhost. (как это коснулось @Artur Cesar De Melo). Это находится под их FAQ:

Я получаю сообщение об ошибке "Localhost не входит в список поддерживаемых доменов". Это работало раньше, что мне делать?

Локальные домены больше не поддерживаются по умолчанию. Если вы хотите продолжить их поддержку для разработки, вы можете добавить их в список поддерживаемых доменов для вашего ключа сайта. Перейдите в консоль администратора, чтобы обновить список поддерживаемых доменов. Мы советуем использовать отдельный ключ для разработки и производства и не разрешать локальный хост на вашем рабочем сайте.

1: Создайте отдельный ключ для среды разработки

2: Добавить 127.0.0.1 в список разрешенных доменов

3: сохранить изменения и разрешить до 30 минут для внесения изменений.

Ответ 6

По Документация Google recaptcha

Локальные домены больше не поддерживаются по умолчанию. Если вы хотите продолжать поддерживать их для развития, вы можете добавить их в список поддерживаемых доменов для вашего ключа сайта. Перейдите в консоль администратора, чтобы обновите список поддерживаемых доменов. Мы рекомендуем использовать отдельный ключ для разработки и производства и не позволять localhost на вашем производственный сайт

Ответ 7

Удалите текущий ключ REcaptcha, затем зарегистрируйте новый ключ и установите свои настройки ключа с доменами: 127.0.0.1 localhost

Ответ 8

Recaptcha не будет работать на localhost/

Use `127.0.0.1/` instead of `localhost/`

Ответ 9

Если у вас есть старый ключ, вы должны воссоздать свой API-ключ. Также имейте в виду прокси.

Ответ 11

Вы можете написать "localhost" или "127.0.0.1", но URL должен быть одинаковым

Пример: Google Домены Add-> localhost URL => localhost/login.php

Пример: Домены Google Add-> 127.0.0.1 URL => 127.0.0.1/login.php

Ответ 12

Да, это более старый вопрос, но это может помочь всем пользователям, имеющим проблемы с reCaptcha на localhost. Google действительно говорит: "По умолчанию все ключи работают на" localhost "(или" 127.0.0.1 "), но для реального использования reCaptcha на localhost могут возникнуть проблемы. В моем случае я решил использовать, используя защищенный токен

Я разместил здесь РАБОЧИЙ РЕШЕНИЕ для PHP

Ответ 13

Недавно я работал над созданием веб-сайта с recaptcha v2, и мне нужно сделать автоматизацию тестирования на моем локальном хосте. Я не добавлял никаких ip или localhost в портал администратора recaptcha.

Выполните следующие шаги

  1. Войдите в скриншот сайта администратора

  2. Найти параметры ключа

  3. Нажмите дополнительные настройки

  4. В разделе " Проверка имени домена" снимите флажок " Проверить источник возникновения решений reCAPTCHA". Эта опция используется для проверки запросов, поступающих из одного из перечисленных выше доменов.

    Обратите внимание, что при отключении вы должны проверить имя хоста на своем сервере при проверке решения.


Я создал новый ключ и отключил его и использовал этот ключ для тестирования в localhost.

Это примерная страница, которая реализует reCAPTCHA для комментариев.

Ответ 14

localhost работает сейчас. Однако помните, что после добавления localhost в список доменных имен для вступления в силу требуется до 30 минут (согласно подсказке подсказки, отображаемой в списке имен доменов).

Ответ 16

  1.    Зарегистрируйте свой сайт по адресу - https://www.google.com/recaptcha/admin
  2. добавить плагин JS 3.Добавьте класс и ваш ключ сайта, предоставленные Google enter image description here
<script src='https://www.google.com/recaptcha/api.js'></script>
 <div class="g-recaptcha" data-sitekey="your site-key"></div>

Ответ 17

когда вы добавляете домены в Google recaptcha

Добавить новый домен: Локальный хост, а не локальный

"L" - заглавная буква

Удачи