PHP를 사용하여 웹 사이트를 개발 중이며 세션 중 하나에서 사람을 확인하고 싶습니다. 개발을 위해 처음에는 시스템을 로컬에서 실행하고 있으며 준비가되면 특정 도메인에 시스템을 설치합니다.
에서 reCAPTCHA를 웹 사이트 는 플러그인 만 주어진 도메인 (및 하위 도메인)에서 작동 할 것이라고 말한다.
내 질문은 : localhost에서 reCAPTCHA 플러그인을 사용하는 방법이 있습니까?
localhost
PHP를 사용하여 웹 사이트를 개발 중이며 세션 중 하나에서 사람을 확인하고 싶습니다. 개발을 위해 처음에는 시스템을 로컬에서 실행하고 있으며 준비가되면 특정 도메인에 시스템을 설치합니다.
에서 reCAPTCHA를 웹 사이트 는 플러그인 만 주어진 도메인 (및 하위 도메인)에서 작동 할 것이라고 말한다.
내 질문은 : localhost에서 reCAPTCHA 플러그인을 사용하는 방법이 있습니까?
localhost
답변:
원래 답변이 더 이상 정확하지 않습니다. 개발자 안내서는 이제 다음과 같이 말합니다.
"개발에"localhost "를 사용하려면 도메인 목록에 추가해야합니다."
127.0.0.1/...
이보다 는를 사용하여 localhost에 액세스하는 경우에만 작동합니다 localhost/...
.
원래 답변은 아래에 유지됩니다.
reCAPTCHA 개발자 안내서 에 따르면 :
"로컬 호스트 도메인은 더 이상 기본적으로 지원되지 않습니다. 개발을 위해 계속 지원하려면 사이트 키의 지원되는 도메인 목록에 추가 할 수 있습니다. 지원되는 도메인 목록을 업데이트하려면 관리 콘솔로 이동하십시오. 개발 및 프로덕션에 별도의 키를 사용하고 프로덕션 사이트 키에서 로컬 호스트를 허용하지 않도록하십시오. "
다시 말해, 단순히 동일한 키를 사용하십시오.
2016 년 현재 ReCaptcha는 로컬 호스트를 더 이상 지원하지 않습니다 . FAQ에서 :
localhost 도메인은 더 이상 기본적으로 지원되지 않습니다. 개발을 위해 계속 지원하려면 사이트 키의 지원되는 도메인 목록에 추가 할 수 있습니다. 지원되는 도메인 목록을 업데이트하려면 관리 콘솔로 이동하십시오. 개발 및 프로덕션에 별도의 키를 사용하고 프로덕션 사이트 키에서 로컬 호스트를 허용하지 않는 것이 좋습니다.
localhost
사이트의 도메인 목록에 추가 하기 만하면 됩니다.
localhost
"Localhost는이 사이트 키에서 지원되는 도메인 목록이 아닙니다."라는 오류 메시지가 추가 되었지만 여전히 나타납니다.
이것은 나를 위해 일했다 :
"다음 테스트 키를 사용하면 항상 보안 문자가 표시되지 않으며 모든 확인 요청이 통과됩니다.
사이트 키 : 6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI
비밀 키 : 6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe
reCAPTCHA 위젯은 테스트 목적으로 만 경고 메시지를 표시합니다. 프로덕션 트래픽에는이 키를 사용하지 마십시오. "
BR!
너무 쉽다 :
localhost
& 127.0.0.1
를 추가하십시오 .최신 정보:
귀하의 질문에 설정하는 방법 경우 reCaptcha
로컬 호스트에서 사용 구글 사이트에서 다음 내가있다 위에 쓴하지만 당신은 당신이 사용하는 방법을 것을 호기심 경우 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
하면 사후 조치 에서 매개 변수를 설정 하거나ViewBag
조치 및보기에서 수동으로 reCaptcha에 대한 매개 변수를 설정할 필요가 없었으며 , 로컬 호스트 또는 웹 사이트에서 프로젝트를 실행 한 것에 따라 모든 매개 변수가 런타임시 자동으로 적절한 값으로 채워집니다. .😉
Google은 최근 로컬 호스트가 기본적으로 허용되도록 중지했습니다. (@Artur Cesar De Melo가 언급 한대로) 다음은 FAQ의 내용입니다.
"Localhost가 지원되는 도메인 목록에 없습니다"라는 오류가 발생합니다. 이것은 전에 일하고 있었는데 어떻게해야합니까?
localhost 도메인은 더 이상 기본적으로 지원되지 않습니다. 개발을 위해 계속 지원하려면 사이트 키의 지원되는 도메인 목록에 추가 할 수 있습니다. 지원되는 도메인 목록을 업데이트하려면 관리 콘솔로 이동하십시오. 개발 및 프로덕션에 별도의 키를 사용하고 프로덕션 사이트 키에서 로컬 호스트를 허용하지 않는 것이 좋습니다.
1 : 개발 환경을위한 별도의 키 만들기
2 : 허용 된 도메인 목록에 127.0.0.1 추가
3 : 변경 사항을 저장하고 변경 사항이 적용되도록 최대 30 분 동안 허용
localhost 도메인은 더 이상 기본적으로 지원되지 않습니다. 개발을 위해 계속 지원하려면 사이트 키의 지원되는 도메인 목록에 추가 할 수 있습니다. 지원되는 도메인 목록을 업데이트하려면 관리 콘솔로 이동하십시오. 개발 및 프로덕션에 별도의 키를 사용하고 프로덕션 사이트 키에서 로컬 호스트를 허용하지 않는 것이 좋습니다.
- https://www.google.com/recaptcha/admin 에서 웹 사이트를 등록하십시오.
- js 플러그인 추가 3. 클래스 추가 및 Google에서 제공하는 사이트 키
<script src='https://www.google.com/recaptcha/api.js'></script>
<div class="g-recaptcha" data-sitekey="your site-key"></div>
이전 키가있는 경우 API 키를 다시 작성해야합니다. 또한 프록시를 알고 있어야합니다.
https://developers.google.com/recaptcha/docs/domain_validation
검사를 비활성화 할 수있는 부분을 확인하십시오. 개발을 위해서만하십시오.
예, 이것은 오래된 질문이지만 로컬 호스트의 reCaptcha에 문제가있는 모든 사용자를 도울 수 있습니다. 구글은 실제로 "기본적으로 모든 키는 'localhost'(또는 '127.0.0.1')에서 작동하지만"localhost에서 reCaptcha를 실제로 사용하면 문제가 발생할 수 있다고 말합니다. 내 경우에는 안전한 토큰을 사용하여 내 문제를 해결했습니다.
최근에 recaptcha v2가 포함 된 웹 사이트를 만드는 중이었고 로컬 호스트에서 테스트 자동화를 수행해야합니다. recaptcha 관리 포털에 ip 또는 localhost를 추가하지 않았습니다.
아래 단계를 따르십시오
recaptcha 관리자 사이트 스크린 샷에 로그인
키 설정 찾기
고급 설정을 클릭하십시오
에서 도메인 이름 확인 , 취소 검사 reCAPTCHA를 솔루션의 기원 확인 확인란을. 이 옵션은 위에 나열된 도메인 중 하나에서 온 요청을 확인하는 데 사용됩니다.
비활성화 된 경우 솔루션을 확인할 때 서버에서 호스트 이름을 확인해야합니다.
새 키를 만들고 비활성화하고 localhost에서 테스트하기 위해이 키를 사용합니다.
주석을위한 reCAPTCHA를 구현 하는 샘플 페이지 입니다.
laravel 웹 사이트에서 recaptcha와 관련된 오류가 발생했습니다. 명령을 사용하고 env 파일을 사용하여 문제를 해결했으며 위의 답변 도이 문제에 도움이됩니다.
먼저 Google recpatcha 키에 대한 env 파일 (Google recaptcha 키가있는 경우 파일)을 확인하십시오.
두 번째로 다음 명령을 실행하십시오.
PHP 장인 경로 : 지우기
그것은 당신의 문제를 해결할 것입니다