उपरोक्त टिप्पणियों में बताया गया है कि, मैं https://github.com/mirhampt/node-recaptcha पर उपलब्ध ब्रोफा और नोड-रीपैप्चा मॉड्यूल की सहायता से समस्या को हल करने में सक्षम था।
लेकिन पहले, ऊपर से लापता विवरण पूरा करने के लिए:
- मैं किसी भी मॉड्यूल का उपयोग नहीं किया है, मेरे समाधान पूरी तरह से आत्म लिखित दस्तावेज the reCAPTCHA website पर उपलब्ध पर आधारित है।
मैंने कोई अनुरोध शीर्षलेख नहीं भेजा क्योंकि दस्तावेज़ में कुछ भी नहीं बताया गया था। सब कुछ अनुरोध के विषय में कहा जाता है कि इससे पहले कि वे आवश्यक मानकों को समझाने है निम्नलिखित:
"के बाद अपने पेज को सफलतापूर्वक reCAPTCHA प्रदर्शित कर रहा है, तो आप चाहे जवाब उपयोगकर्ताओं द्वारा दर्ज सही जांचने के लिए अपने प्रपत्र विन्यस्त करने की जरूरत। यह http://www.google.com/recaptcha/api/verify पर POST अनुरोध करके हासिल किया जाता है। नीचे प्रासंगिक पैरामीटर हैं। "
- http://code.google.com/apis/recaptcha/docs/verify.html
पर "कैसे उपयोगकर्ता की उत्तर जांचें करने के लिए" इसलिए मैं बनाया एक अपने आप querystring (जो एक एक लाइनर है, लेकिन उसके लिए एक module है और साथ ही मुझे पता चला अब) सभी मानकों को शामिल किया गया है और इसे reCAPTCHA API एंडपॉइंट पर भेजा गया है। मुझे जो त्रुटि मिली वह त्रुटि कोड invalid-site-private-key
था, जो वास्तव में (जैसा कि हम अब जानते हैं) वास्तव में 400 Bad Request
भेजने का गलत तरीका है। शायद उन्हें इसे लागू करने के बारे में सोचना चाहिए तो लोग आश्चर्य नहीं करेंगे कि उनकी चाबियों में क्या गड़बड़ है।
एक और बात मैं node-recaptcha मॉड्यूल से सीखा है कि एक क्वेरी स्ट्रिंग utf8
इनकोडिंग भेजना चाहिए, है।
मेरा समाधान अब इस तरह दिखता है, आप इसका उपयोग कर सकते हैं या उस पर बनाया गया है लेकिन त्रुटि प्रबंधन अभी तक लागू नहीं किया गया है। और यह कॉफीस्क्रिप्ट में लिखा है।
http = require 'http'
module.exports.check = (remoteip, challenge, response, callback) ->
privatekey = 'placeyourprivatekeyhere'
request_body = "privatekey=#{privatekey}&remoteip=#{remoteip}&challenge=#{challenge}&response=#{response}"
response_body = ''
options =
host: 'www.google.com'
port: 80
method: 'POST'
path: '/recaptcha/api/verify'
req = http.request options, (res) ->
res.setEncoding 'utf8'
res.on 'data', (chunk) ->
response_body += chunk
res.on 'end',() ->
callback response_body.substring(0,4) == 'true'
req.setHeader 'Content-Length', request_body.length
req.setHeader 'Content-Type', 'application/x-www-form-urlencoded'
req.write request_body, 'utf8'
req.end()
धन्यवाद
पर्याप्त विवरण प्रदान नहीं किया गया। अनुरोध हेडर क्या हैं? क्या आप https://github.com/mirhampt/node-recaptcha जैसे मॉड्यूल का उपयोग कर रहे हैं? हो सकता है कि जब आप कुछ नींद ले लें तो दोबारा दोबारा कोशिश करें। : पी – broofa
अरे ब्रूफा, क्षमा करें कि मेरा प्रश्न इसका उत्तर देने के लिए पर्याप्त नहीं था। फिर भी आपने मॉड्यूल में अनजाने में अपनी समस्या बी/सी हल की है, जिसे आपने रीकैप्चा का सत्यापन करने के लिए जरूरी अनियंत्रित शीर्षलेख पोस्ट किया है, इसलिए मैं उन्हें अपने स्वयं के समाधान में बनाने में सक्षम था। मैं बाद में समाधान के रूप में समाधान पोस्ट करूंगा। धन्यवाद! ;) – floriankrueger