1
我想查看客戶在我的註冊表單中使用react-google-recaptcha
生成的回覆。 不幸的是,我沒有看到如何用Python來驗證它的服務器端。如何使用Python驗證ReCaptcha響應服務器端?
我試過recaptcha-client
:https://pypi.python.org/pypi/recaptcha-client,但它似乎預計直接使用同一個庫生成的iframe的響應。
我想查看客戶在我的註冊表單中使用react-google-recaptcha
生成的回覆。 不幸的是,我沒有看到如何用Python來驗證它的服務器端。如何使用Python驗證ReCaptcha響應服務器端?
我試過recaptcha-client
:https://pypi.python.org/pypi/recaptcha-client,但它似乎預計直接使用同一個庫生成的iframe的響應。
它實際上是相當簡單的,沒有圖書館需要執行此驗證,繼谷歌的文檔:https://developers.google.com/recaptcha/docs/verify
我不得不編碼我的參數的地址,發送給谷歌服務器的請求,這是我的代碼,請注意,我正在使用Flask,但對於任何Python後端,其原理都保持不變:
import urllib
import json
URIReCaptcha = 'https://www.google.com/recaptcha/api/siteverify'
recaptchaResponse = body.get('recaptchaResponse', None)
private_recaptcha = '6LdXXXXXXXXXXXXXXXXXXXXXXXX'
remote_ip = request.remote_addr
params = urllib.urlencode({
'secret': private_recaptcha,
'response': recaptchaResponse,
'remote_ip': remote_ip,
})
# print params
data = urllib.urlopen(URIReCaptcha, params).read()
result = json.loads(data)
success = result.get('success', None)
if success == True:
print 'reCaptcha passed'
else:
print 'recaptcha failed'