我正在使用Python(3.7)和Django(2)开发一个项目,其中我必须实现Google的Recaptcha。为了进行身份验证,我使用的是LoginView
中内置的Django,contrib.auth.views
,如何通过此身份验证视图验证验证码?因为在我们的自定义情况下,我们通过传递密钥向Recaptcha api发送请求,并检查结果是否为Success
,但是在这种情况下,我们将其传递给此内置视图。
这是我到目前为止尝试过的:
来自urls.py
:
path('login/', LoginView.as_view(extra_context={'key': settings.RECAPTCHA_PUBLIC_KEY}), name='login'),
来自login.html
:
<form action="{% url 'login' %}" method="post" class="p-3">
{% csrf_token %}
<div class="form-group">
<label for="recipient-name" class="col-form-label">Username</label>
<input type="text" class="form-control" placeholder=" " name="username" id="recipient-name"
required="">
</div>
<div class="form-group">
<label for="password" class="col-form-label">Password</label>
<input type="password" class="form-control" placeholder=" " name="password" id="password"
required="">
</div>
<div class="form-group">
<script src='https://www.google.com/recaptcha/api.js'></script>
<div class="g-recaptcha" data-sitekey="{{ key }}"> {{ key }}</div>
</div>
<div class="right-w3l">
<input type="submit" class="form-control" value="Login">
</div>
</form>