我想在我的注册表单中检查使用realloc()
生成的客户端的响应。
不幸的是,我不知道如何用Python验证服务器端。
我尝试了react-google-recaptcha
:https://pypi.python.org/pypi/recaptcha-client,但似乎它希望生成的iframe直接使用相同的库进行响应。
答案 0 :(得分:4)
实际上非常简单,根据Google的文档,不需要任何库来执行此验证:https://developers.google.com/recaptcha/docs/verify
我只需要在地址中对参数进行编码并向Google服务器发送请求,这是我的代码,请注意我使用的是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'
答案 1 :(得分:1)
在服务器端使用带有flask的python
emailAddresses/value
在客户端,使用React
安装正式的Google reCaptcha模块:
emailAddresses
然后,在包含以下内容的组件中:
from flask import request
def verify_recaptcha(self, token):
recaptcha_url = 'https://www.google.com/recaptcha/api/siteverify'
recaptcha_secret_key = 'SECRET-KEY'
payload = {
'secret': secret_key,
'response': token,
'remoteip': request.remote_addr,
}
response = requests.post(, data = payload)
result = response.json()
return result.get('success', None)