仅需三步,为Django admin增加登录验证码功能
首先,需要安装一个验证码的第三方库-django-simple-captcha,这是一个极其简单但可高度定制的 Django 第三方应用程序,用于将验证码图像添加到任何 Django 表单。
- 通过pip安装django-simple-captcha
- 添加captcha到settings.py的INSTALLED_APPS中
- 生成数据,命令行运行python manage.py migrate
- 添加url到项目的urls.py文件中
- 创建一个dadmin的APP,并将其添加到settings.py的INSTALLED_APPS中
- 在dadmin中创建一个forms.py的文件,我们继承django自带的登录表单AuthenticationForm,并对其进行扩展!
- 在dadmin的同级创建一个templates的文件夹,并在其内部创建一个dadmin的文件夹,将django默认的登录模板中的代码全部拷贝过来,并在密码框下添加验证码的输入框!
- 在dadmin中的admin.py中添加如下代码,这里我们子类化了AdminSite类,这样我们就可以随意修改和覆盖django 默认admin的任何模板,并且不会影响默认admin的任何东西,还可以继承admin的所有功能及模板!
在项目的urls.py中注册刚才子类化的站点地址
终端启动站点
浏览器打开站点可以看到验证码已经添加成功了,但似乎样式不美观,这个就留给大家自己去研究吧,给个思路可以拷贝captcha默认的验证码模板,样式重写即可!
实现点击更换验证码功能
将如下代码加入到login.html模板的底部即可,别忘了引入Jquery.js哦!
到此大功告成,很简单的验证码功能就完成了!
如果你也在自学Python或Django,那就请关注我吧,会不断更新关于django及python的技术干货,以及小案例!
下篇预告:django实现前后端分离登录功能,并加入验证码功能!
Vue实战089:最简单的登录验证码功能实现
在登录界面中我们经常会遇到需要校验验证码才能登录,验证码是由一串随机产生的字母、数字或符号组成。目的是为了防止用户利用机器人自动注册、恶意登录、刷票灌水等操作,验证码技术可以适当的提高服务的安全性,提升用户体验。常见的验证码有随机字符、汉字图片、字符图片、算术、问答、滑块、坐标、旋转、滑动拼图、文字点选、图标点选、推理拼图、语序点选、空间推理、短信、语音、智能无感知等验证方式,最简单的应该是随机字符验证了(安全级别最低!)。
在template模板中绑定一个动态的style样式,利用check来改变图标的颜色提示用户验证码输入正确,如果验证码错误则利用message弹出警示框提示。点击验证码位置触发refreshCode重新调用createCode来刷新验证码,handleLogin为键盘事件触发登录。
利用Math.random()随机生成一个0-1之间的随机double值,根据random随机数组中的数据随机出索引值,再通过索引值获取到对应的随机值。随机的长度通过len来限制,将每次随机出的数据追加到code中即可得到随机的验证码。
这里不能通过el-form中的rules来校验验证码的正确与否,因为在data中定义checkCode 无法获取到this.createdCode值(undefined)。这里我们利用el-input的blur失去焦点事件来触发验证,如果你想在用户输入的时候就验证可以使用input事件在Input值改变时触发。
这里只是一个简单的验证逻辑,真正的应用上随机字符基本不会被使用。因为随机字符验证安全性太低了,模拟操作可以很容易的通过DOM获取到相应的验证码。以上内容是小编给大家分享的【Vue实战089:最简单的登录验证码功能实现】,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。更多Vue实战技巧可以参考以下专栏:
为了方便学习,下面附上本文用到的源码:
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。