文章内容

2020/1/13 20:34:14,作 者: 黄兵

使用google recaptcha验证输入

在python中,使用django框架google recaptcha后端验证的具体方法:

import requests
from django.conf import settings

def get_client_ip(request):
    x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
    if x_forwarded_for:
        ip = x_forwarded_for.split(',')[0]
    else:
        ip = request.META.get('REMOTE_ADDR')
    return ip

def grecaptcha_verify(request):
    if request.method == 'POST':
        response = {}
        data = request.POST
        captcha_rs = data.get('g-recaptcha-response')
        url = "https://www.google.com/recaptcha/api/siteverify"
        params = {
            'secret': settings.RECAPTCHA_SECRET_KEY,
            'response': captcha_rs,
            'remoteip': get_client_ip(request)
        }
        verify_rs = requests.get(url, params=params, verify=True)
        verify_rs = verify_rs.json()
        response["status"] = verify_rs.get("success", False)
        response['message'] = verify_rs.get('error-codes', None) or "Unspecified error."
        return HttpResponse(response)


在国内可用google recaptcha的两个网址是:

http://recaptcha.google.cn/

http://recaptcha.net/

同时通过https也是没有问题的。


文章来源:How to validate Google reCAPTCHA v2 in django

分享到:

发表评论

评论列表