0
我想驗證我的Python web應用程序中的reCAPTCHA,但我總是得到incorrect-captcha-sol
錯誤,雖然響應是正確的。下面是驗證代碼:reCAPTCHA總是返回不正確的驗證碼
data = {
'privatekey': config.registry.settings['captcha_private_key'],
'remoteip': ip,
'challenge': challenge,
'response': response,
}
request = urllib2.Request('http://www.google.com/recaptcha/api/verify',
urllib.urlencode(data))
response = urllib2.urlopen(request)
if response.readline() != 'true':
log.error('Captcha validation error, error_code=%s' % (response.readline()))
raise httpexceptions.HTTPUnauthorized()
爲了得到挑戰和響應值,我用get_challenge()
和get_response()
JavaScript函數,然後通過AJAX發送的值。
你可以驗證'challenge'和'response'的值是否有效/正確?那'urllib.urlencode(data)'評估你想要的? – Ian
@Ian我在js和python中打印了'challenge'和'response'字段,它們是有效和正確的。如果我刪除或修改了其他必需的字段,比如'remoteip'或'privatekey',我就會得到其他錯誤,所以我假設'urllib.urlencode(data)'正確地將'data'字典轉換爲字符串。 –
它必須是輸入不正確。我只是設置了最簡單的Python服務器(使用CherryPy)和HTML表單(使用AJAX),並且它工作得很好(也使用您的代碼)。 – Ian