PHPを使用してWebサイトを開発していますが、セッションの1つで人間による確認を行いたいと考えています。開発では、最初はシステムをローカルで実行しており、準備が整ったら、特定のドメインに配置します。
でreCAPTCHAのウェブサイトには、プラグインが唯一の特定のドメイン(とサブドメイン)で動作すると言われています。
私の質問は、ローカルホストでreCAPTCHAプラグインを使用する方法はありますか?
localhost
PHPを使用してWebサイトを開発していますが、セッションの1つで人間による確認を行いたいと考えています。開発では、最初はシステムをローカルで実行しており、準備が整ったら、特定のドメインに配置します。
でreCAPTCHAのウェブサイトには、プラグインが唯一の特定のドメイン(とサブドメイン)で動作すると言われています。
私の質問は、ローカルホストでreCAPTCHAプラグインを使用する方法はありますか?
localhost
回答:
元の答えは正しくありません。開発者ガイドには、次のように記載されています。
「開発に「localhost」を使用する場合は、ドメインのリストに追加する必要があります。」
これは、127.0.0.1/...
ではなくを使用してlocalhostにアクセスする場合にのみ機能しますlocalhost/...
。
元の答えは以下に保存されています。
reCAPTCHA開発者ガイドによると:
「localhostドメインはデフォルトでサポートされなくなりました。開発のサポートを継続したい場合は、サイトキーのサポートされるドメインのリストに追加できます。管理コンソールに移動して、サポートされるドメインのリストを更新してください。開発用と本番用に別々のキーを使用し、本番サイトのキーでlocalhostを許可しないでください。」
つまり、同じキーを使用するだけです。
2016年の時点で、ReCaptchaは基本的にlocalhostをサポートしていません。FAQから:
localhostドメインはデフォルトでサポートされなくなりました。開発のためにそれらのサポートを継続したい場合は、サイトキーでサポートされるドメインのリストにそれらを追加できます。管理コンソールに移動して、サポートされているドメインのリストを更新します。開発と本番では別のキーを使用し、本番サイトのキーでlocalhostを許可しないことをお勧めします。
だからlocalhost
あなたのサイトのドメインのリストに追加するだけでいいでしょう。
localhost
が、「Localhostはこのサイトキーでサポートされているドメインのリストではありません」というエラーが表示されます。
これは私のために働きました:
「次のテストキーを使用すると、CAPTCHAは常に取得されず、すべての検証リクエストはパスします。
サイトキー: 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!
非常に簡単:
localhost
&127.0.0.1
を追加します。更新:
あなたの質問はどのように設定することである場合reCaptcha
はlocalhostでそれを使用するための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
をWebプロジェクトに追加します。
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>
注:この方法では、アクションとビューでpostアクションまたはreCaptchaのパラメータを手動で設定
reCaptcha_SecretKey
する必要はありませんでした。ローカルホストまたはWebサイトでプロジェクトを実行したかどうかに応じて、実行時にそれらすべてに適切な値が自動的に入力されます.😉ViewBag
Googleは最近変更し、デフォルトでlocalhostを許可するのをやめました。(@Artur Cesar De Meloによって触れられたように)これは彼らのFAQの下にあります:
「ローカルホストがサポートされているドメインのリストにありません」というエラーが表示されます。これは以前は機能していましたが、どうすればよいですか?
localhostドメインはデフォルトでサポートされなくなりました。開発のためにそれらのサポートを継続したい場合は、サイトキーでサポートされるドメインのリストにそれらを追加できます。管理コンソールに移動して、サポートされているドメインのリストを更新します。開発と本番では別のキーを使用し、本番サイトのキーでlocalhostを許可しないことをお勧めします。
1:開発環境用に別のキーを作成する
2:許可ドメインのリストに127.0.0.1を追加します
3:変更を保存し、変更が有効になるまで最大30分待ちます
あたりとして、GoogleのreCAPTCHAのドキュメント
localhostドメインはデフォルトでサポートされなくなりました。開発のためにそれらのサポートを継続したい場合は、サイトキーでサポートされるドメインのリストにそれらを追加できます。管理コンソールに移動して、サポートされているドメインのリストを更新します。開発用と本番用に別々のキーを使用し、本番サイトのキーでlocalhostを許可しないことをお勧めします
Recaptchaは動作しません localhost/
Use `127.0.0.1/` instead of `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
チェックを無効にできると書かれている部分を確認してください。開発のためだけに実行してください。
"localhost"または "127.0.0.1"と記述できますが、URLは同じである必要があります
例:Google Domains Add-> localhost URL => localhost / login.php
例:Google Domains Add-> 127.0.0.1 URL => 127.0.0.1/login.php
はい、これは古い質問ですが、これはすべてのユーザーがローカルホストのreCaptchaで問題を抱えているのに役立つかもしれません。実際、Googleは「デフォルトでは、すべてのキーは「localhost」(または「127.0.0.1」)で機能します」と述べていますが、実際にlocalhostでreCaptchaを使用すると問題が発生する可能性があります。私の場合、私は安全なトークンを使用して私のものを解決しました
最近、recaptcha v2を含むWebサイトの作成に取り組んでおり、自分のローカルホストでテストの自動化を行う必要があります。IPやローカルホストをrecaptcha管理ポータルに追加していません。
以下の手順に従ってください
recaptcha管理サイトのスクリーンショットにログイン
キー設定を見つける
詳細設定をクリックします
下にドメイン名の検証、アンチェックがreCAPTCHAのソリューションの起源を確認するチェックボックスを。このオプションは、上記のドメインのいずれかからのリクエストを確認するために使用されます。
無効にした場合、解決策を検証するときにサーバーのホスト名を確認する必要があることに注意してください。
私は新しいキーを作成し、これを無効にして、ローカルホストでのテストにこのキーを使用します。
これは、サンプルページのコメントのためのreCAPTCHAを実装します。
laravelウェブサイトでrecaptchaに関連するエラーが発生しました。コマンドとenvファイルを使用して解決しました。上記の回答もこの問題の解決に役立ちます。
まず最初に、Google Recpatchaキーのenvファイル(Google Recaptchaキーを含むケースファイル)を確認します。
2番目にこれらのコマンドを実行します。
php artisan route:clear
それはあなたの問題を解決します