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

How to validate a ReCaptcha response server side with Python?(如何用Python验证ReCaptcha响应服务器端?)
本文介绍了如何用Python验证ReCaptcha响应服务器端?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

我尝试了recaptcha-client:https://pypi.python.org/pypi/recaptcha-client,但它似乎希望从直接使用相同库生成的iframe获得响应。

推荐答案

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

我只需对地址中的参数进行编码,并向Google服务器发送请求,以下是我的代码,请注意,我使用的是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验证ReCaptcha响应服务器端?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Leetcode 234: Palindrome LinkedList(Leetcode 234:回文链接列表)
How do I read an Excel file directly from Dropbox#39;s API using pandas.read_excel()?(如何使用PANDAS.READ_EXCEL()直接从Dropbox的API读取Excel文件?)
subprocess.Popen tries to write to nonexistent pipe(子进程。打开尝试写入不存在的管道)
I want to realize Popen-code from Windows to Linux:(我想实现从Windows到Linux的POpen-code:)
Reading stdout from a subprocess in real time(实时读取子进程中的标准输出)
How to call type safely on a random file in Python?(如何在Python中安全地调用随机文件上的类型?)