Использование reCAPTCHA на localhost
Я разрабатываю веб-сайт с использованием PHP, и я хочу сделать человеческую проверку в одном из сеансов. Для разработки я изначально запускаю систему локально, и когда она будет готова, я собираюсь поместить ее в определенный домен.
на сайт reCAPTCHA Он говорит, что плагин будет работать только на данном домене (и поддомены).
мой вопрос: Есть ли способ использовать плагин reCAPTCHA на локальном хосте?
13 ответов:
обновление
исходный ответ больше не является правильным. В руководстве разработчика теперь говорится:
"если вы хотите использовать "localhost" для развития, вы должны добавить его в список доменов."
это будет работать только при доступе к localhost с помощью
127.0.0.1/...
, а неlocalhost/...
.оригинальный ответ ниже.
по данным разработчик reCAPTCHA Руководство:
"локальные домены больше не поддерживаются по умолчанию. Если вы хотите продолжать поддерживать их для разработки, вы можете добавить их в список поддерживаемых доменов для вашего ключа сайта. Заходим в консоль администратора, чтобы обновить список поддерживаемых доменов. Мы советуем использовать отдельный ключ для разработки и производства и не допускать localhost на вашем производственном сайте."
другими словами, просто используйте тот же ключ.
обратите внимание, что по состоянию на 2016 год,ReCaptcha больше не поддерживает наивно localhost. Из FAQ:
Домены localhost больше не поддерживаются по умолчанию. Если вы хотите продолжайте поддерживать их для разработки вы можете добавить их в список поддерживаемых доменов для вашего сайта ключевые. Заходим в консоль администратора обновите список поддерживаемых доменов. Советуем использовать отдельный ключ для развития и продукции и не позволить localhost дальше ваш ключ производственной площадки.
Так что просто добавить
localhost
к вашему списку доменов для вашего сайта и вы будете хороши.
это так просто:
- иди к своему Google reCaptcha admin panel
- добавить
localhost
&127.0.0.1
к доменам нового сайта, как показано на следующем рисунке.
обновление:
если ваш вопрос заключается в том, как установить
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, затем зарегистрировать новый ключ и установить основные параметры с доменами:
127.0.0.1 localhost
https://developers.google.com/recaptcha/docs/domain_validation
Проверьте часть, где он говорит, что вы можете отключить проверку. Только делайте это для развития.
Да, это старый вопрос, но это может помочь всем пользователям, имеющим проблемы с reCAPTCHA на localhost. Google действительно говорит:" по умолчанию все ключи работают на 'localhost' (или '127.0.0.1')", но для реального использования reCaptcha на localhost могут возникнуть проблемы. В моем случае я решил мой с помощью безопасное маркер
вы можете написать "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.
выполните следующие действия
войдите на сайт recaptcha admin скриншот
Найдите Ключевые Настройки
нажмите на дополнительные параметры
под Проверка Доменного Имени, снимите флажок Проверьте происхождение решений reCAPTCHA. Этот параметр используется для проверки запросов, поступающих из одного из перечисленных выше доменов.
обратите внимание, что при отключении необходимо проверить имя хоста на сервере при проверке решения.
Я создал новый ключ и отключить это и использовать этот ключ для тестирования в localhost.
Это пример страницы, который реализует reCAPTCHA для комментариев.