首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >reCAPTCHA不会阻止用户登录

reCAPTCHA不会阻止用户登录
EN

Stack Overflow用户
提问于 2019-06-13 05:28:18
回答 1查看 61关注 0票数 0

我正在尝试使用谷歌reCAPTCHA为我的登录表单,以防止垃圾邮件。在执行了必要的步骤使其全部正常工作后,用户仍然可以登录。他们可以填写这些详细信息并登录,而不勾选复选框,这是不正确的。

我想可能是DOM中的位置问题,所以我试着移动它,但没有起作用。

代码:

代码语言:javascript
复制
{% extends 'public/base.html' %}
{% load staticfiles %}
{% load crispy_forms_tags %}

{% block head %}
    <link rel="stylesheet" type="text/css" href="{% static "public/css/auth.css" %}" />
{% endblock %}

{% block content %}
    <div class="container mt-5 mb-5 login-container">
        <form method="POST">
            {% csrf_token %}
            <fieldset class="form-group mt-4">
                <legend class="border-bottom mb-4">Log In</legend>
                {{ form|crispy }}
                <script src="https://www.google.com/recaptcha/api.js" async defer></script>
                <div class="g-recaptcha" data-sitekey="################################
                "></div>
            </fieldset>
            <div class="form-group">
                <button class="btn btn-success" type="submit">Login</button>
                <small class="text-muted ml-2">
                    <a href="{% url 'password_reset' %}">Forgot Password?</a>
                </small>
            </div>
        </form>
        <div class="border-top pt-3 mb-4">
            <small class="text-muted">
                Need An Account? <a class="ml-2" href="{% url 'register' %}">Sign Up Now</a>
            </small>
        </div>
    </div>
{% endblock %}```

Thanks.
EN

回答 1

Stack Overflow用户

发布于 2019-06-13 05:53:08

当您使用验证码时,将在<div class="g-recaptcha">中动态添加一个文本区。该文本区域不可见,默认情况下具有id="g-recaptcha-response"

你可以通过以下方式获得它:

代码语言:javascript
复制
document.getElementById('g-recaptcha-response').value

在登录表单中,您必须检查文本区域是否有值。如果它有一个值,那么用户已经成功地使用了验证码,可以继续登录过程。

如下所示:

代码语言:javascript
复制
<form onsubmit="return check_form()">
...
</form>

<script>
function check_form()
{
   return document.getElementById('g-recaptcha-response').value != '';
}
</script>

如果check_form()返回FALSE,则不会提交表单。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56570603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档