在Django中验证reCAPTCHA v3

时间:2018-12-01 11:03:12

标签: python django recaptcha recaptcha-v3

在reCAPTCHA V2中,我可以在views.py本身中进行验证。但是在V3中,我不知道如何进行。现在,我将其用于127.0.0.1的开发中。

首先,我生成了站点密钥和秘密密钥。 在settings.py中,我添加了密钥, GOOGLE_RECAPTCHA_SECRET_KEY = 'my_secret_key_here'

然后在我的signup.html中, <script src='https://www.google.com/recaptcha/api.js?render=my_site_key_here'></script>

与以前不同,没有

标签可以添加复选框。脚本本身正在我的浏览器的侧面显示recaptcha符号。

我的问题是,

  1. 如何使用 grecaptcha.execute 进行验证。

  2. 我是否必须将带有站点密钥的脚本添加到我要防止垃圾邮件的每个页面中,或者有任何简单的方法

2 个答案:

答案 0 :(得分:0)

是的,您需要将其添加到具有提交表单的每个页面中。验证仍在视图中进行。

此库似乎在使集成变得容易上做了很多工作-https://github.com/kbytesys/django-recaptcha3

答案 1 :(得分:0)

本文看起来可以帮助您解决问题:How to implement google recaptcha v3 on your django

摘要:

  1. 调用execute方法,这将返回您需要在后端验证的令牌。

  2. 您可以将其保存在表单中的某个位置

  3. 提交表单时发送令牌

  4. 在您的视图中验证令牌
  

我是否必须将带有站点密钥的脚本添加到我想防止垃圾邮件的每个页面中,或者有什么简单的方法

确实,您需要在每个要防止垃圾邮件的页面上添加脚本。