python - 如何使用 Python 验证 ReCaptcha 响应服务器端?

标签 python reactjs recaptcha

我想检查来自使用 react-google-recaptcha 生成的客户端的响应在我的注册表单中。
不幸的是,我不知道如何使用 Python 验证它的服务器端。

我试过 recaptcha-client :https://pypi.python.org/pypi/recaptcha-client ,但它似乎期待来自生成的 iframe 直接与相同的库的响应。

最佳答案

它实际上非常简单,并且不需要任何库来执行此验证,遵循 Google 的文档:https://developers.google.com/recaptcha/docs/verify

我只需要在地址中编码我的参数并向谷歌服务器发送请求,这是我的代码,请注意我使用的是 Flask,但任何 Python 后端的原理都是相同的:

from urllib.parse import urlencode
from urllib.request import urlopen
import json


        URIReCaptcha = 'https://www.google.com/recaptcha/api/siteverify'
        recaptchaResponse = body.get('recaptchaResponse', None)
        private_recaptcha = '6LdXXXXXXXXXXXXXXXXXXXXXXXX'
        remote_ip = request.remote_addr
        params = urlencode({
            'secret': private_recaptcha,
            'response': recaptchaResponse,
            'remote_ip': remote_ip,
        })

        # print params
        data = urlopen(URIReCaptcha, params.encode('utf-8')).read()
        result = json.loads(data)
        success = result.get('success', None)

        if success == True:
            print 'reCaptcha passed'
        else:
            print 'recaptcha failed'

关于python - 如何使用 Python 验证 ReCaptcha 响应服务器端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46393162/

相关文章:

python - 计算一行Python中字符串中的重复字符

javascript - TypeError : Object(. ..) 不是函数 reactjs

audio - 删除ReCaptcha中的音频?

sinatra - Sinatra 的验证码是什么?

python - OpenCV + Python + 多处理行不通

python - 安装 Idle3.6 时出错

Python - 反转整个文件

javascript - 使用 React Router PrivateRoute 处理 Refreshtoken

javascript - 在 ReactJS 中操作 Momentjs 日期

带有 recaptcha 和 mysql 插入错误的 PHP 表单