你需要知道的添加Django后台验证码的方法

invisible-recaptcha
为了一定程度的降低被暴力破解的概率,增加一些服务的安全性,我们往往会给我们的服务增加验证码。

今天给大家分享如何快速给django admin后台添加验证码的方式方法。

作为一名偷懒的Python开发者,想到怎么简单怎么来。

所以原则就是「不改动代码数据结构,通过第三方包的方式配置生成验证码」

本着这个原则就有了下面的两种方式:

使用google recaptcha2

第一种方式就是使用 google recaptcha2

去 reCAPTCHA: Easy on Humans, Hard on Bots页面添加域名

到达如下的注册页面
google register

添加完后,获取对应的public_key和private_key
google key

安装配置如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
pip install django-captcha-admin
INSTALLED_APPS = (
...
'captcha_admin',
'captcha',
)
RECAPTCHA_PUBLIC_KEY = 'your-public-key'
RECAPTCHA_PRIVATE_KEY = 'your-private-key'
\# If I'm not a Robot is required add:
NOCAPTCHA = True
from captcha_admin import admin
urlpatterns = patterns(
...
url(r'^admin/', include(admin.site.urls)), # and this...
...
)

到此配置就完成了,然后就有了下面的效果
google captcha

使用google captcha的安全性和可用性都不错,但是由于国内原因,需要你的服务器和使用你后台客户需要梯子翻*墙,所以下面有第二种方案。

使用django-simple-captcha

这种方式主要结合了 django-multi-captcha-admin 包进行配置

配置如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
pip install django-multi-captcha-admin django-simple-captcha
INSTALLED_APPS = (
...
'multi_captcha_admin',
'django.contrib.admin',
)
MULTI_CAPTCHA_ADMIN = {
'engine': 'simple-captcha', # 选择recaptcha2
}
urlpatterns = patterns(
...
url(r'^captcha/', include('captcha.urls')), # and this...
...
)
python manage.py migrate

ps: django-simple-captcha 要求Django > 1.8

最后效果图如下:
django-simple-captcha

其实这django-multi-captcha-admin 这个包直接可以添加方式一的google的验证码方式了,这里面我就没有尝试了。大家有兴趣可以去试试。

到此Django后台验证码添加方式就已经完成,大家有其他更方便的方式欢迎在留言区给我留言,一起交流讨论。

本文首发微信公众号

sitin wechat
扫一扫上面的二维码,订阅我的博客!