将验证码添加到Django登录表单

时间:2019-03-18 21:07:42

标签: python django django-views recaptcha django-login

我想在我的Django登录名中添加验证码身份验证。我已经知道如何对表单进行身份验证,但是问题是我的 views.py 中没有登录视图,我正在使用集成在项目中的模块的登录视图

我正在使用的登录视图是正确的here,基本上我只是将其导入到我的项目中,并且该视图可以处理整个登录部分。

现在如何向该视图添加验证码身份验证部分?

我知道我应该做的第一件事就是在我自己的 views.py 文件中继承模块的视图,但是我真的不知道该怎么做。我已经定义了验证码表单的身份验证逻辑,所以我唯一需要弄清楚的是如何将以下代码集成到我正在使用的登录视图中:

def captcha_auth(request):

    if request.method == "POST":
        ''' Begin reCAPTCHA validation '''
        recaptcha_response = request.POST.get('g-recaptcha-response')
        data = {
            'secret': 'KEY',
            'response': recaptcha_response
        }
        r = requests.post('https://www.google.com/recaptcha/api/siteverify', data=data)
        result = r.json()
        ''' End reCAPTCHA validation '''

        if result['success']:
            //In the following lines i'll add authentication for the user

        else:
            messages.error(request, "Please fill the captcha form")

0 个答案:

没有答案