Использование reCAPTCHA на localhost


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

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

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

13 193

13 ответов:

обновление

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

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

это будет работать только при доступе к localhost с помощью 127.0.0.1/..., а не localhost/....

оригинальный ответ ниже.


по данным разработчик reCAPTCHA Руководство:

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

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

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

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

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

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

  1. иди к своему Google reCaptcha admin panel
  2. добавить localhost & 127.0.0.1 к доменам нового сайта, как показано на следующем рисунке.

enter image description here


обновление:

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

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

он поддерживает 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
}

на View: (ссылка)

@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"];
    }
}

Б) добавить reCaptcha настройки клавиш для обоих localhost & website нравится в вашем webconfig file:

<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>

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

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

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

ключ сайта: 6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_mxjizkhi Секретный ключ: 6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe Виджет reCAPTCHA покажет предупреждающее сообщение, чтобы утверждать, что это только для целей тестирования. Пожалуйста, не используйте эти ключи для вашего производственного трафика."

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

БР!

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

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

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

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

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

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

по состоянию на Google recaptcha documentation

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

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

Use `127.0.0.1/` instead of `localhost/`

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

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

https://developers.google.com/recaptcha/docs/domain_validation

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

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

я разместил здесь рабочее решение для PHP

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

пример: добавление доменов Google - > localhost URL = > localhost/login.php

пример: добавление доменов Google - > 127.0.0.1 URL = > 127.0.0.1/login.php

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

выполните следующие действия

  1. войдите на сайт recaptcha admin скриншот

  2. Найдите Ключевые Настройки

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

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

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


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

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