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'