358

PHPを使用してWebサイトを開発していますが、いずれかのセッションで人間による検証を行いたいと考えています。開発のために、私は最初にシステムをローカルで実行していて、準備ができたら、それをいくつかのドメインに配置します。

reCAPTCHA Webサイトでは、プラグインは特定のドメイン(およびサブドメイン)でのみ機能すると言われています。

ローカルホストでreCAPTCHAプラグインを使用する方法はありますか?

4

23 に答える 23

418

アップデート

元の答えはもはや正しくありません。開発者ガイドには、次のように記載されています。

「開発に「localhost」を使用する場合は、ドメインのリストに追加する必要があります。」

127.0.0.1/...これは、ではなくを使用してlocalhostにアクセスする場合にのみ機能しますlocalhost/...

元の答えは以下に保存されています。


reCAPTCHA開発者ガイドによると:

「ローカルホストドメインはデフォルトでサポートされなくなりました。開発のために引き続きサポートする場合は、サイトキーのサポートされているドメインのリストに追加できます。管理コンソールに移動して、サポートされているドメインのリストを更新することをお勧めします。開発と本番用に別々のキーを使用し、本番サイトのキーでローカルホストを許可しないようにします。」

つまり、同じキーを使用するだけです。

于 2012-04-03T04:29:56.727 に答える
136

これは私のために働いた:

reCAPTCHAドキュメントからの抜粋:

次のテストキーを使用すると、常にCAPTCHAが取得されず、すべての検証リクエストに合格します。

サイトキー:6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI

秘密の鍵:6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe

reCAPTCHAウィジェットには、テスト目的のみであると主張する警告メッセージが表示されます。これらのキーを本番トラフィックに使用しないでください。

于 2017-01-19T16:08:34.173 に答える
110

2016年以降、 reCAPTCHAはローカルホストを単純にサポートしなくなったことに注意してください。FAQから:

ローカルホストドメインは、デフォルトではサポートされなくなりました。開発のためにそれらを引き続きサポートしたい場合は、サイトキーでサポートされているドメインのリストにそれらを追加できます。管理コンソールに移動して、サポートされているドメインのリストを更新します。開発と本番用に別々のキーを使用し、本番サイトのキーでローカルホストを許可しないことをお勧めします。

localhostあなたのサイトのドメインのリストに追加するだけで、うまくいくでしょう。

于 2016-07-16T05:38:21.323 に答える
83

非常に簡単:

  1. GoogleのreCAPTCHA管理パネルに移動します
  2. 次の画像のように、新しいサイトのドメインにlocalhost&を追加します。127.0.0.1

ここに画像の説明を入力してください


アップデート:

あなたの質問がローカルホストでそれを使用するためにGoogleサイトでreCAPTCHAを設定する方法である場合、それは私が上で書いたようですが、あなたが両方 localhostでreCAPTCHAを使用する方法とあなたのコントローラーwebsite host最小限のコードでそのようないくつかのコードConfigurationManager.AppSettings["ReCaptcha:SiteKey"]、それから私は私の答えのこの追加の説明とコードであなたを助けます。

次のGETおよびPOSTアクションが好きですか?

以下のコードはreCAPTCHAをサポートしており、reCAPTCHAを処理するために他のコードは必要ありません。

[HttpGet]
[Recaptcha]
public ActionResult Register()
{
    // Your code in the GET action
}

[HttpPost]
[Recaptcha]
[ValidateAntiForgeryToken]
public ActionResult Register(RegisterViewModel model, string reCaptcha_SecretKey){
   // Your code in the POST action
   if (!ModelState.IsValid || !ReCaptcha.Validate(reCaptcha_SecretKey))
   {
       // Your code
   }
   // Your code
}

ビュー内:(参照

@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設定キーをファイルに追加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>

注:この方法では、アクションとビューでpostアクションreCaptcha_SecretKeyのパラメーターやreCaptchaのパラメーターを手動で設定する必要はありませんでした。これらはすべて、ローカルホストまたはWebサイトでプロジェクトを実行したかどうかに応じて、実行時に適切な値で自動的に入力されます。ViewBag

于 2017-01-14T07:05:58.940 に答える
23

Google reCAPTCHAにドメインを追加する場合:

新しいドメインを追加します。

ローカルホストではなくローカルホスト

「L」は大文字です。

于 2019-08-14T13:57:34.007 に答える
13

2021年1月2日の時点で、Googleはこの記事でテスト用にこれら2つのキーを投稿しました。

reCAPTCHAで自動テストを実行したいのですが。私は何をすべきか?reCAPTCHA v3の場合、テスト環境用に別のキーを作成します。reCAPTCHA v3は実際のトラフィックの確認に依存しているため、スコアが正確でない場合があります。

reCAPTCHA v2の場合は、次のテストキーを使用します。常にキャプチャは取得されず、すべての確認リクエストに合格します。

Site key: 6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI
Secret key: 6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe

reCAPTCHAウィジェットは、本番トラフィックに使用されていないことを確認するための警告メッセージを表示します。

生成された電子メールは、私が初めてキーを使用したときにスパムになりました。

于 2021-01-02T20:39:25.693 に答える
9

現在のreCAPTCHAキーを削除し、新しいキーを登録して、次のドメインでキー設定を設定します。

127.0.0.1
localhost
于 2018-01-24T22:11:22.197 に答える
8

Googleは最近、ローカルホストのデフォルトでの許可を停止しました(@Artur Cesar De Meloが触れたように)。これは彼らのFAQの下にあります:

「ローカルホストはサポートされているドメインのリストにありません」というエラーが表示されます。これは以前は機能していましたが、どうすればよいですか?

localhostドメインはデフォルトでサポートされなくなりました。開発のためにそれらを引き続きサポートしたい場合は、サイトキーでサポートされているドメインのリストにそれらを追加できます。管理コンソールに移動して、サポートされているドメインのリストを更新します。開発と本番用に別々のキーを使用し、本番サイトのキーでローカルホストを許可しないことをお勧めします。

1:開発環境用に別のキーを作成します

2:許可されたドメインのリストに127.0.0.1を追加します

3:変更を保存し、変更が有効になるまで最大30分待ちます

于 2016-08-25T21:06:21.073 に答える
6

reCAPTCHAはでは機能しませんlocalhost/

127.0.0.1/の代わりに使用してくださいlocalhost/

于 2017-09-22T11:36:07.670 に答える
5

GoogleのreCAPTCHAドキュメントによる

localhostドメインはデフォルトでサポートされなくなりました。開発のためにそれらを引き続きサポートしたい場合は、サイトキーでサポートされているドメインのリストにそれらを追加できます。管理コンソールに移動して、サポートされているドメインのリストを更新します。開発と本番用に別々のキーを使用し、本番サイトのキーでローカルホストを許可しないことをお勧めします

于 2016-07-16T22:18:18.330 に答える
5
  1. https://www.google.com/recaptcha/adminでウェブサイトを登録します

  2. JavaScriptプラグインを追加します

  3. Googleが提供するクラスとサイトキーを追加します

    ここに画像の説明を入力してください

于 2019-07-29T11:28:42.933 に答える
3

localhostが機能するようになりました。ただし、ドメイン名のリストにlocalhostを追加した後、有効になるまでに最大30分かかることに注意してください(ドメイン名リストに対して表示されるヘルプのヒントによると)。

于 2018-11-30T11:27:10.293 に答える
3

Google reCAPTCHA Webサイトのドメインリスト(https://www.google.com/recaptcha/admin/site/{siteid}/settings)に、を追加しLOCALHOSTます。

上記がうまくいかない場合は、追加してみてください127.0.0.1

于 2021-01-28T14:31:00.793 に答える
1

古いキーがある場合は、APIキーを再作成する必要があります。プロキシにも注意してください。

于 2015-09-18T11:26:40.000 に答える
1

「localhost」または「127.0.0.1」と書くことができますが、URLは同じである必要があります。

例:Googleドメイン追加->ローカルホストURL => localhost / login.php

例:Googleドメイン追加-> 127.0.0.1 URL => 127.0.0.1 / login.php

于 2017-12-30T02:37:25.733 に答える
1

最近、reCAPTCHA v2を含むWebサイトの作成に取り組んでおり、ローカルホストでテスト自動化を行う必要がありました。reCAPTCHA管理ポータルにIPアドレスまたはローカルホストを追加しませんでした。

以下の手順に従ってください

  1. reCAPTCHA管理サイトにログインします。スクリーンショット

  2. キー設定を見つける

  3. 詳細設定をクリックします

  4. [ドメイン名の検証]、[reCAPTCHAソリューションの発信元を確認する]チェックボックスをオフにします。このオプションは、上記のドメインのいずれかからのリクエストを確認するために使用されます。

    無効にした場合、ソリューションを検証するときにサーバーのホスト名を確認する必要があることに注意してください。


新しいキーを作成し、これを無効にして、ローカルホストでのテストにこのキーを使用しました。

これはコメント用のreCAPTCHAを実装するサンプルページです。

于 2018-07-28T20:03:23.680 に答える
1

2021年の今日の時点で、Google reCAPTCHA Enterpriseバージョンコンソールには、許可されたドメインのリストへの追加を許可しない検証チェックが含まれています。localhostこれを回避するには(明らかに開発/テストの目的でのみ)、次の作業を行います。

  1. ドメインをローカルホストに解決するエントリをhostsファイルに作成します

    127.0.0.1    whatever-your-domain-will-be.com
    
  2. ローカルホストに移動するのではなく、ドメインに移動してアプリケーションをテストします。

私のローカルサーバー/アプリは通常http:// localhost:4000で実行されるので、http://whatever-your-domain-will-be.com:4000に移動するとうまくいきました。

デプロイまたはテストが完了すると、hostsファイルエントリを削除するのは簡単で、reCAPTCHAの許可されたドメインのリストにゴミが残りません。

于 2021-06-20T16:22:45.640 に答える
0

これは、ローカルホストでreCAPTCHAに問題があるすべてのユーザーを支援している可能性があります。Googleは確かに「デフォルトでは、すべてのキーは「localhost」(または「127.0.0.1」)で機能します」と言っていますが、実際にはlocalhostでreCAPTCHAを使用すると問題が発生する可能性があります。私の場合、安全なトークンを使用して解決しました。

ここにPHPの実用的なソリューションを投稿しました。

于 2016-02-19T08:36:06.823 に答える
0

テストの目的で、ローカルホストでreCAPTCHAを含むWebページをテストする場合は管理コンソール2https://www.google.com/recaptcha/admin)でドメインリストにローカルホストを追加します。*ローカルホスト用に別のサイトキーを作成することをお勧めします。

管理コンソールのスクリーンショット

CAPTCHA出力

于 2020-08-10T12:05:33.907 に答える
0

私にとってうまくいった方法は、私の外部IPアドレスを使用することでした。

それが何であるかわからない場合は、「What'smyIP」をグーグルで検索してください。

次に、IPアドレスを使用して、キャプチャ用のドメインにこれ​​を設定すると、正常に機能し始めます。

于 2020-10-30T15:02:17.190 に答える
0

Laravelを使用している場合は、サーバーを再起動して、次の2つのコマンドを実行する必要があります。

php artisan config:clear

php artisan cache:clear
于 2020-12-30T04:40:47.420 に答える
-2

LaravelのWebサイトでreCAPTCHAに関連するエラーが発生しました。私はいくつかのコマンドとenvファイルを使用してそれを解決しました、そして以前の答えもこの問題に役立ちます。

まず、envファイル(この場合は、Google reCAPTCHAキーを持つファイル)でGooglereCAPTCHAキーを確認します。

次に、次のコマンドを実行します。

  1. php artisan config:clear
  2. php artisan cache:clear
  3. composer dump-autoload
  4. php artisan view:clear
  5. php artisan route:clear

それはあなたの問題を解決します。

于 2020-01-24T09:13:45.413 に答える
-2

私にとっては、実際の構成を削除して新しい構成を作成し、次のようなドメインを追加することができました。

ここに画像の説明を入力してください

于 2020-09-24T18:08:17.050 に答える