[localhost] localhost에서 reCAPTCHA 사용

PHP를 사용하여 웹 사이트를 개발 중이며 세션 중 하나에서 사람을 확인하고 싶습니다. 개발을 위해 처음에는 시스템을 로컬에서 실행하고 있으며 준비가되면 특정 도메인에 시스템을 설치합니다.

에서 reCAPTCHA를 웹 사이트 는 플러그인 만 주어진 도메인 (및 하위 도메인)에서 작동 할 것이라고 말한다.

내 질문은 : localhost에서 reCAPTCHA 플러그인을 사용하는 방법이 있습니까?



답변

최신 정보

원래 답변이 더 이상 정확하지 않습니다. 개발자 안내서는 이제 다음과 같이 말합니다.

“개발에”localhost “를 사용하려면 도메인 목록에 추가해야합니다.”

127.0.0.1/...이보다 는를 사용하여 localhost에 액세스하는 경우에만 작동합니다 localhost/....

원래 답변은 아래에 유지됩니다.


reCAPTCHA 개발자 안내서 에 따르면 :

“로컬 호스트 도메인은 더 이상 기본적으로 지원되지 않습니다. 개발을 위해 계속 지원하려면 사이트 키의 지원되는 도메인 목록에 추가 할 수 있습니다. 지원되는 도메인 목록을 업데이트하려면 관리 콘솔로 이동하십시오. 개발 및 프로덕션에 별도의 키를 사용하고 프로덕션 사이트 키에서 로컬 호스트를 허용하지 않도록하십시오. “

다시 말해, 단순히 동일한 키를 사용하십시오.


답변

2016 년 현재 ReCaptcha는 로컬 호스트를 더 이상 지원하지 않습니다 . FAQ에서 :

localhost 도메인은 더 이상 기본적으로 지원되지 않습니다. 개발을 위해 계속 지원하려면 사이트 키의 지원되는 도메인 목록에 추가 할 수 있습니다. 지원되는 도메인 목록을 업데이트하려면 관리 콘솔로 이동하십시오. 개발 및 프로덕션에 별도의 키를 사용하고 프로덕션 사이트 키에서 로컬 호스트를 허용하지 않는 것이 좋습니다.

localhost사이트의 도메인 목록에 추가 하기 만하면 됩니다.


답변

이것은 나를 위해 일했다 :

“다음 테스트 키를 사용하면 항상 보안 문자가 표시되지 않으며 모든 확인 요청이 통과됩니다.

사이트 키 : 6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI

비밀 키 : 6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe

reCAPTCHA 위젯은 테스트 목적으로 만 경고 메시지를 표시합니다. 프로덕션 트래픽에는이 키를 사용하지 마십시오. “

여기에서 추출 : https://developers.google.com/recaptcha/docs/faq#id-like-to-run-automated-tests-with-recaptcha.-what-should-i-do

BR!


답변

너무 쉽다 :

  1. 당신의 이동 구글 reCAPTCHA를 관리 패널
  2. 다음 이미지와 같이 새 사이트의 도메인에 localhost& 127.0.0.1를 추가하십시오 .

여기에 이미지 설명을 입력하십시오


최신 정보:

귀하의 질문에 설정하는 방법 경우 reCaptcha로컬 호스트에서 사용 구글 사이트에서 다음 내가있다 위에 쓴하지만 당신은 당신이 사용하는 방법을 것을 호기심 경우 reCAPTCHA모두 localhostwebsite 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모두 localhostwebsite같은 설정 키를 추가 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하면 사후 조치 에서 매개 변수를 설정 하거나 ViewBag조치 및보기에서 수동으로 reCaptcha에 대한 매개 변수를 설정할 필요가 없었으며 , 로컬 호스트 또는 웹 사이트에서 프로젝트를 실행 한 것에 따라 모든 매개 변수가 런타임시 자동으로 적절한 값으로 채워집니다. .😉


답변

Google recaptcha에서 도메인을 추가 할 때

새 도메인 추가 : localhost가 아닌 Localhost

“L”은 대문자

행운을 빕니다


답변

Google은 최근 로컬 호스트가 기본적으로 허용되도록 중지했습니다. (@Artur Cesar De Melo가 언급 한대로) 다음은 FAQ의 내용입니다.

“Localhost가 지원되는 도메인 목록에 없습니다”라는 오류가 발생합니다. 이것은 전에 일하고 있었는데 어떻게해야합니까?

localhost 도메인은 더 이상 기본적으로 지원되지 않습니다. 개발을 위해 계속 지원하려면 사이트 키의 지원되는 도메인 목록에 추가 할 수 있습니다. 지원되는 도메인 목록을 업데이트하려면 관리 콘솔로 이동하십시오. 개발 및 프로덕션에 별도의 키를 사용하고 프로덕션 사이트 키에서 로컬 호스트를 허용하지 않는 것이 좋습니다.

1 : 개발 환경을위한 별도의 키 만들기

2 : 허용 된 도메인 목록에 127.0.0.1 추가

3 : 변경 사항을 저장하고 변경 사항이 적용되도록 최대 30 분 동안 허용


답변

당으로 구글의 reCAPTCHA를 문서

localhost 도메인은 더 이상 기본적으로 지원되지 않습니다. 개발을 위해 계속 지원하려면 사이트 키의 지원되는 도메인 목록에 추가 할 수 있습니다. 지원되는 도메인 목록을 업데이트하려면 관리 콘솔로 이동하십시오. 개발 및 프로덕션에 별도의 키를 사용하고 프로덕션 사이트 키에서 로컬 호스트를 허용하지 않는 것이 좋습니다.