Jolly

django使用django-otp实现后台admin管理系统令牌二次登录,让你的系统更加安全
很多人吐槽django的后台管理系统登录模块不够安全,没有验证码,没有短信。就是裸账号密码登录。确实,django...
扫描右侧二维码阅读全文
30
2021/07

django使用django-otp实现后台admin管理系统令牌二次登录,让你的系统更加安全

很多人吐槽django的后台管理系统登录模块不够安全,没有验证码,没有短信。就是裸账号密码登录。确实,django在系统定制这上面做到了极致,用户能改的地方不多,admin管理系统也是一样的被人吐槽简陋,当然,admin系统也不是不能美化,关于美化的相关介绍可以看我的另一篇介绍“simpleui美化”。这里给大家带来的是admin登录的otp二次令牌验证。

具体效果如下图,otp token就是令牌验证码:
QQ20210730135306.png

安装

安装的话也很简单,首先是先安装两个包,在项目环境里执行:

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,无关大雅)
QQ20210730135448.png
这时候点击新增,然后在user部分点击放大镜添加勾选管理员,然后name处写上备注,右下角点击保存,返回列表页面
QQ20210730135507.png
这时候可以看到列表出现了刚才添加的用户,点击右边的qrcode,就会弹出一个二维码。这时候用手机app扫码,就会把动态验证码保存到手机app上,手机app会在文末给出,安卓的是离线的app,提供安装包下载,苹果则是商店下载
QQ20210730141705.png

这时候基础配置就都完成啦,再把刚才注释掉的urls代码放开就好了,以后每次登录都需要用户名密码和otp的密码才能登陆。

关于otp验证技术

关于otp验证技术相关介绍,我找了一篇网上的评论介绍,大家可以参考下离线验证码生成器的原理是什么?

app下载

这里分安卓和ios

好了,有什么问题都可以联系我。

Last modification:July 30th, 2021 at 02:32 pm
如果觉得我的文章对你有用,请随意赞赏

Leave a Comment

🌓