लोकलहोस्ट पर reCAPTCHA का उपयोग करना


286

मैं PHP का उपयोग करके एक वेबसाइट विकसित कर रहा हूं और मैं एक सत्र में एक मानव सत्यापन करना चाहता हूं। विकास के लिए, मैं शुरू में सिस्टम को स्थानीय रूप से चला रहा हूं और जब यह तैयार हो जाता है, तो मैं इसे एक निश्चित डोमेन में डालने वाला हूं।

में reCAPTCHA वेबसाइट यह कहा जाता है कि प्लगइन केवल दिए गए डोमेन (और उप) पर काम करेंगे।

मेरा प्रश्न है: क्या किसी लोकलहोस्ट पर reCAPTCHA प्लगइन का उपयोग करने का कोई तरीका है?


यदि आप इस तथ्य के बाद लोकलहोस्ट को जोड़ते हैं तो कुकीज़ साफ़ करें।
माइक फ्लिन

3
डोमेन की सूची में टाइप करेंlocalhost
csandreas1

जवाबों:


356

अपडेट करें

मूल उत्तर अब सही नहीं है। डेवलपर का गाइड अब बताता है:

"यदि आप विकास के लिए" लोकलहोस्ट "का उपयोग करना चाहते हैं, तो आपको इसे डोमेन की सूची में जोड़ना होगा।"

यह तभी काम करेगा जब आप लोकलहोस्ट को एक्सेस करने के 127.0.0.1/...बजाय एक्सेस करेंगे localhost/...

मूल उत्तर नीचे संरक्षित है।


ReCAPTCHA डेवलपर की गाइड के अनुसार :

"लोकलहोस्ट डोमेन अब डिफ़ॉल्ट रूप से समर्थित नहीं हैं। यदि आप उन्हें विकास के लिए समर्थन जारी रखना चाहते हैं, तो आप उन्हें अपनी साइट की कुंजी के लिए समर्थित डोमेन की सूची में जोड़ सकते हैं। समर्थित डोमेन की अपनी सूची को अपडेट करने के लिए व्यवस्थापक कंसोल पर जाएं। हम आपको सलाह देते हैं। विकास और उत्पादन के लिए एक अलग कुंजी का उपयोग करें और अपनी उत्पादन साइट की कुंजी पर लोकलहोस्ट की अनुमति न दें। "

दूसरे शब्दों में, बस एक ही कुंजी का उपयोग करें।


8
मैंने पुष्टि करने के लिए जाँच की कि क्या शब्द उस पृष्ठ पर थे। वह जा चुका था! 2015 में, आप ऊपर दिए गए उद्धरण @ Developers.google.com/recaptcha/docs/start
जोशुआ प्लिस्क

11
यह उत्तर सटीक है, लेकिन एक महत्वपूर्ण चेतावनी है जिसने मुझे स्टम्प किया था: जब reCAPTCHA v1 से v2 पर माइग्रेट किया जा रहा है, तो इस संदेश को गायब करने के लिए एपीआई कुंजियों को फिर से बनाना आवश्यक है। आगे, और समान रूप से महत्वपूर्ण, यदि आप मेरे जैसे हैं और आप अपने स्थानीय / विकास परिवेश में ऑपरेटिंग सिस्टम की "मेजबानों" फ़ाइल में प्रविष्टियाँ डालकर परीक्षण डोमेन सेटअप करते हैं, तो आपको उन "नकली" डोमेन को अनुमत डोमेन के लिए जोड़ना होगा "त्रुटि: साइट कुंजी के लिए अमान्य डोमेन" त्रुटि को हल करने के लिए सवाल में reCAPTCHA खाते।
बेन जॉनसन

5
जब आपकी लोकलहोस्ट का नाम "लोकलहोस्ट" नहीं है, तब यह काम नहीं कर रही है।
हेक्सोडस

12
लगता है कि Google ने स्थानीयहोस्ट पर परीक्षण करने की क्षमता को हटा दिया है।
आइरिशचेयर 17

4
जबकि लोकलहोस्ट ने मेरे लिए काम नहीं किया था मैं 127.0.0.1 और * .xip.io पते दोनों का उपयोग करने में सक्षम था।
davidbates

104

कृपया ध्यान दें कि 2016 तक, ReCaptcha स्थानीय रूप से स्थानीय रूप से समर्थन नहीं करता है । सामान्य प्रश्न से:

लोकलहोस्ट डोमेन अब डिफ़ॉल्ट रूप से समर्थित नहीं हैं। यदि आप उन्हें विकास के लिए समर्थन जारी रखना चाहते हैं, तो आप उन्हें अपनी साइट कुंजी के लिए समर्थित डोमेन की सूची में जोड़ सकते हैं। समर्थित डोमेन की अपनी सूची को अपडेट करने के लिए एडमिन कंसोल पर जाएं। हम विकास और उत्पादन के लिए एक अलग कुंजी का उपयोग करने की सलाह देते हैं और आपकी उत्पादन साइट की कुंजी पर लोकलहोस्ट की अनुमति नहीं देते हैं।

तो बस localhostअपनी साइट के लिए अपने डोमेन की सूची में जोड़ें और आप अच्छे होंगे।


12
मैंने जोड़ा localhostलेकिन अभी भी त्रुटि हो रही है "स्थानीयहोस्ट इस साइट कुंजी के लिए समर्थित डोमेन की सूची नहीं है।"
अनादि १२

6
@ArbazAbid आपके सिस्टम को अपडेट करने के लिए आपको एक या कई घंटे इंतजार करना पड़ सकता है ...
CC Inc

1
इसके अतिरिक्त, यदि आपके पास कई परियोजनाएं हैं और आप Windows होस्ट फ़ाइल और VirtualHosts को सेटअप करते हैं, उदाहरण के लिए WAMP में यह यहां पाया जा सकता है C: \ wamp \ bin \ apache \ Apache2.2.21 \ conf \ extra \ httpd-vhost.conf, तो अपना पंजीकरण करें ServerName प्रोजेक्ट करें। परीक्षण किया और ठीक काम करता है।
जेफज़

@ जेफ़ेज़ मेजबान फ़ाइल विंडोज विशिष्ट नहीं है - यह अच्छी सामान्य सलाह है।
नाथन हॉर्बी

80

यह मेरे लिए काम किया:

"निम्नलिखित परीक्षण कुंजियों के साथ, आपको हमेशा कोई कैप्चा नहीं मिलेगा और सभी सत्यापन अनुरोध पास हो जाएंगे।

कार्यस्थल की कुंजी: 6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI

गुप्त कुंजी: 6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe

ReCAPTCHA विजेट यह दावा करने के लिए एक चेतावनी संदेश दिखाएगा कि यह केवल परीक्षण उद्देश्य के लिए है। कृपया अपने उत्पादन ट्रैफ़िक के लिए इन कुंजियों का उपयोग न करें। "

यहां से निकाला गया: https://developers.google.com/recaptcha/docs/faq#id-like-to-run-automated-tests-with-recaptcha.-what-should-i-do

बीआर!


1
महान! इसके लिए धन्यवाद।
सैम

1
यदि यह काम करना बंद कर देता है, तो मैं ऑटोमैटैटिक के समाधान पर जाऊंगा। यहाँ आपका समाधान ही है जो मुझे इस कष्टप्रद तकनीक को छोड़ने से रोकता है।
पीजे ब्रूनेट

1
ऐसा लगता है कि यह "सही उत्तर" है क्योंकि यह आपके देव वातावरण को आपके पर्यावरण से अलग रखता है।
क्रोनोफिश

67

यह कितना आसान है:

  1. अपने Google reCaptcha व्यवस्थापक पैनल पर जाएं
  2. जोड़ें 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>
}

इसके प्रयेाग के लिए

ए)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फ़ाइल में पसंद करें :

<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 के लिए सेट reCaptcha_SecretKeyपैरामीटर की आवश्यकता नहीं थी , उन सभी को स्वचालित रूप से उचित मानों के साथ रनटाइम पर भर दिया जाएगा। .😉ViewBag


16

जब आप Google रिकैप्चा में डोमेन जोड़ते हैं

नया डोमेन जोड़ें: लोकलहोस्ट लोकलहोस्ट नहीं

"L" कैपिटल लेटर है

सौभाग्य


8

Google ने हाल ही में लोकलहोस्ट को डिफ़ॉल्ट रूप से अनुमति देने से रोक दिया है। (@Artur Cesar De Melo द्वारा छुआ गया) यह उनके FAQ के अंतर्गत है:

मुझे एक त्रुटि मिल रही है "लोकलहोस्ट समर्थित डोमेन की सूची में नहीं है"। यह पहले काम कर रहा था, मुझे क्या करना चाहिए?

लोकलहोस्ट डोमेन अब डिफ़ॉल्ट रूप से समर्थित नहीं हैं। यदि आप उन्हें विकास के लिए समर्थन जारी रखना चाहते हैं, तो आप उन्हें अपनी साइट कुंजी के लिए समर्थित डोमेन की सूची में जोड़ सकते हैं। समर्थित डोमेन की अपनी सूची को अपडेट करने के लिए एडमिन कंसोल पर जाएं। हम विकास और उत्पादन के लिए एक अलग कुंजी का उपयोग करने की सलाह देते हैं और आपकी उत्पादन साइट की कुंजी पर लोकलहोस्ट की अनुमति नहीं देते हैं।

1: अपने विकास के माहौल के लिए एक अलग कुंजी बनाएँ

2: अनुमत डोमेन की सूची में 127.0.0.1 जोड़ें

3: परिवर्तनों को सहेजें और परिवर्तनों को प्रभावित करने के लिए 30 मिनट तक की अनुमति दें


5

Google रिकैप्‍चा प्रलेखन के अनुसार

लोकलहोस्ट डोमेन अब डिफ़ॉल्ट रूप से समर्थित नहीं हैं। यदि आप उन्हें विकास के लिए समर्थन जारी रखना चाहते हैं, तो आप उन्हें अपनी साइट कुंजी के लिए समर्थित डोमेन की सूची में जोड़ सकते हैं। समर्थित डोमेन की अपनी सूची को अपडेट करने के लिए एडमिन कंसोल पर जाएं। हम विकास और उत्पादन के लिए एक अलग कुंजी का उपयोग करने की सलाह देते हैं और अपनी उत्पादन साइट की कुंजी पर लोकलहोस्ट की अनुमति नहीं देते हैं


5

वर्तमान रेकप्टा कुंजी निकालें, फिर नई कुंजी पंजीकृत करें और डोमेन के साथ अपनी मुख्य सेटिंग सेट करें : 127.0.0.1 localhost


3

रिकैप्टा पर काम नहीं होगा localhost/

Use `127.0.0.1/` instead of `localhost/`

यह उत्तर स्वीकृत से अलग कैसे है?
smottt

1
यह स्वीकृत एक का सरल संस्करण है। स्वीकार किए गए एक में दोनों उत्तर गलत हैं। 1 के लिए) आपको डोमेन की स्वीकृत सूची में लोकलहोस्ट को जोड़ने की आवश्यकता नहीं है। 2 के लिए) यह लोकलहोस्ट के साथ काम नहीं करता है।
अलियांजुम ०


1

यदि आपके पास पुरानी कुंजी है, तो आपको अपनी एपीआई कुंजी को फिर से बनाना चाहिए। इसके अलावा परदे के पीछे के बारे में पता होना चाहिए।


समीपता के साथ मुद्दा क्या है? प्रॉक्सी को Google API से संचार की अनुमति देने की आवश्यकता है?
smoore4

1
@SQLDBA या तो इसे अच्छी तरह से कॉन्फ़िगर नहीं किया गया है या नया स्थान (IP) अनुमोदन देशों से है, यह कुछ समस्याएं पैदा कर सकता है।
सोहिल नोविनफर्ड


1

आप "लोकलहोस्ट" या "127.0.0.1" लिख सकते हैं, लेकिन URL समान होना चाहिए

उदाहरण: Google डोमेन जोड़ें-> लोकलहोस्ट URL => लोकलहोस्ट / लॉगिन.php

उदाहरण: Google डोमेन जोड़ें-> 127.0.0.1 URL => 127.0.0.1/login.php


1

लोकलहोस्ट अब काम करता है। हालाँकि, याद रखें कि लोकलहोस्ट को डोमेन नामों की सूची में जोड़ने के बाद प्रभावी होने में 30 मिनट तक का समय लगता है (डोमेन नाम सूची के विरुद्ध दिखाए गए हेल्प टिप के अनुसार)।


0

हां, यह एक पुराना सवाल है, लेकिन यह सभी उपयोगकर्ताओं को लोकलहोस्ट पर reCaptcha की समस्या होने में मदद कर सकता है। Google वास्तव में कहता है, "डिफ़ॉल्ट रूप से, सभी कुंजियाँ 'लोकलहोस्ट' (या '127.0.0.1') पर काम करती हैं" लेकिन स्थानीयहोस्ट पर reCaptcha का उपयोग करने से वास्तविक समस्या हो सकती है। मेरे मामले में मैंने सुरक्षित टोकन का उपयोग करके मेरा हल किया

मैंने यहाँ PHP के लिए वर्किंग सॉल्यूशन पोस्ट किया है


0

मैं हाल ही में एक वेबसाइट बनाने पर काम कर रहा था जिसमें recaptcha v2 शामिल था और मुझे अपने स्थानीयहोस्ट पर परीक्षण स्वचालन करने की आवश्यकता है। मैंने पुनरावृत्ति व्यवस्थापक पोर्टल में कोई आईपी या लोकलहोस्ट नहीं जोड़ा।

नीचे दिए गए चरणों का पालन करें

  1. रीप्लेचा एडमिन साइट स्क्रीनशॉट में लॉग इन करें

  2. मुख्य सेटिंग्स का पता लगाएँ

  3. उन्नत सेटिंग्स पर क्लिक करें

  4. डोमेन नाम सत्यापन के तहत , संयुक्त राष्ट्र reCAPTCHA समाधान चेकबॉक्स की उत्पत्ति की जाँच करें । इस विकल्प का उपयोग उपरोक्त सूचीबद्ध डोमेन में से किसी एक के अनुरोध को सत्यापित करने के लिए किया जाता है।

    कृपया ध्यान दें कि, यदि अक्षम हो, तो समाधान की पुष्टि करते समय आपको अपने सर्वर पर होस्ट-नाम की जांच करनी होगी।


मैंने एक नई कुंजी बनाई और इसे अक्षम कर दिया और स्थानीय कुंजी में परीक्षण के लिए इस कुंजी का उपयोग किया।

यह एक नमूना पृष्ठ है जो टिप्पणियों के लिए reCAPTCHA को लागू करता है।


0

मुझे लार्वावेल वेबसाइट में पुनरावृत्ति से संबंधित त्रुटि मिली, मैंने इसे कुछ कमांड का उपयोग करके और एनवी फ़ाइल के साथ हल किया और उपरोक्त उत्तर भी इस समस्या में मदद करेगा।

google recpatcha key के लिए सबसे पहले env file (आपकी केस फाइल में जिसके पास google recaptcha key है) चेक करें।

दूसरा ये कमांड चलाएं:

  1. php कारीगर विन्यास: स्पष्ट
  2. php कारीगर कैश: स्पष्ट
  3. संगीतकार डंप-ऑटोलॉड
  4. php कारीगर दृश्य: स्पष्ट
  5. php कारीगर मार्ग: स्पष्ट

    यह आपकी समस्या का समाधान करेगा


यह reCaptcha, कैशिंग मुद्दों के साथ समस्या के बारे में नहीं है, यह विकास पर्यावरण (लोकलहोस्ट डोमेन) के तहत इसका उपयोग करने के बारे में है।
ROOT
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.