很多人吐槽django的后台管理系统登录模块不够安全,没有验证码,没有短信。就是裸账号密码登录。确实,django在系统定制这上面做到了极致,用户能改的地方不多,admin管理系统也是一样的被人吐槽简陋,当然,admin系统也不是不能美化,关于美化的相关介绍可以看我的另一篇介绍“simpleui美化”。这里给大家带来的是admin登录的otp二次令牌验证。
具体效果如下图,otp token就是令牌验证码:
安装
安装的话也很简单,首先是先安装两个包,在项目环境里执行:
pip install django-otp
pip install qrcode
然后将 django-otp 添加到 setting.py 和中间件中:
INSTALLED_APPS = [
'''
# 安全认证opt
'django_otp',
'django_otp.plugins.otp_totp'
'''
]
MIDDLEWARE = [
'''
'django.contrib.auth.middleware.AuthenticationMiddleware',
# 用户认证,注意放在用户认证中间件下面
'django_otp.middleware.OTPMiddleware',
'''
]
# opt加密配置,自定义字符配置就行
OTP_TOTP_ISSUER = "otp解码"
最后在项目的urls里面加入otp路由配置:
from django_otp.admin import OTPAdminSite
from django.contrib import admin
admin.site.__class__ = OTPAdminSite
这样就完成了基础的配置,这时候当你再次打开项目admin后台,就会出现上图出现过的登陆页面了
配置登录
那现在问题来了,没有otp token我该怎么登录呢,这不是把自己写死了么?别急,等我慢慢说,首先先把刚才在urls里面配置的路由注释掉:
# admin.site.__class__ = OTPAdminSite
然后打开admin,恢复了老版本,可以正常登录,浏览器链接部分打开“/admin/#otp_totp/totpdevice/”,就会出现如下页面(样式可能不太一样,那是因为我配置了simpleui,无关大雅)
这时候点击新增,然后在user部分点击放大镜添加勾选管理员,然后name处写上备注,右下角点击保存,返回列表页面
这时候可以看到列表出现了刚才添加的用户,点击右边的qrcode,就会弹出一个二维码。这时候用手机app扫码,就会把动态验证码保存到手机app上,手机app会在文末给出,安卓的是离线的app,提供安装包下载,苹果则是商店下载。
这时候基础配置就都完成啦,再把刚才注释掉的urls代码放开就好了,以后每次登录都需要用户名密码和otp的密码才能登陆。
关于otp验证技术
关于otp验证技术相关介绍,我找了一篇网上的评论介绍,大家可以参考下离线验证码生成器的原理是什么?
app下载
这里分安卓和ios
- 安卓:https://pan.baidu.com/s/1GgP1iVK7ZKHOZVI_UokiQg 此处内容需要评论回复后(审核通过)方可阅读。
- ios: 此处内容需要评论回复后(审核通过)方可阅读。
好了,有什么问题都可以联系我。
版权属于:Jolly
本文链接:https://totoro.site/index.php/archives/125/
关于转载:原创文章,禁止转载
云盘密码