时间:2021-05-22
最近在开发一个Django项目过程中,碰到了通过ldap认证用户登录的需求。由于之前都是自己写密码加密、用户登录等逻辑,连Django自带的认证模块都没用过,无奈网上关于django配置ldp的资料实在不全。因此,自己摸索了一种简单的实现方式,记录于此。
开发环境
Centos7.2下安装pycharm,并通过X转发至Winodws桌面进行开发
安装pyenv,使用virtualenv 3.6.2 Archives
安装开发过程中需要用到的第三方库,django, mysqlclient等等....这里就不多赘述了
若需参考django开发环境配置和django项目的部署,可以参考我另外一篇文章
python-ldap的安装
python-ldap的安装是最大的坑点。
ldap认证实现思路
如果一个项目的用户登陆要通过ldap,那么这个项目一般就是公司内部项目,例如OA系统,运维平台等。那么,我们可以将用户输入账号、密码信息发给ldap服务器进行认证。如果ldap认证通过,我们去查询数据库中是否已存在此账号的用户,若存在,直接跳转登陆即可,若不存在,则先在数据库中创建此用户,随后跳转登陆。如果ldap认证失败,提示错误信息并返回登陆页即可。有了这样的思路,我们的代码就很简单了。
ldap认证代码 auth.py
初始化连接,bind认证账号密码。如果bind成功,就返回True,若bind报错,就返回False。
登陆的view代码
拿到form中用户输入的账号、密码。调用User对象的login方法,验证成功,就跳转登陆,否则,就提示错误并返回登陆页面。
User对象的Login方法代码
login方法提供了登陆验证功能。调用auth_user函数,传入user,password参数,注意用户名前需要添加本地域名Domain:\。
怎么样,这就实现了在django中通过ldap验证用户登陆的功能,是不是比在settings里配置ldap来导入用户信息要方便的多?
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
项目中需要实现人脸登陆功能,实现思路为在前端检测人脸,把人脸照片发送到后端识别,返回用户token登陆成功前端调用摄像头使用tracking.js检测视频流中的
Django用户认证(Auth)组件Django用户认证(Auth)组件一般用在用户的登录注册上,用于判断当前的用户是否合法,并跳转到登陆成功或失败页面。Dja
前言本文主要给大家介绍了关于Django中内置用户认证的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。认证登陆在进行用户登陆验证的时
本文实例讲述了Winform启动另一个项目传值的方法。分享给大家供大家参考。具体如下:背景:从A项目中登陆后,跳转到B项目的某个页面(B不再登陆)。A项目启动进
Djangoauth登陆后页面跳转至/account/profile,修改跳转至其他页面这几天在学习django,django功能很强大,自带的auth,基本可