在使用“migrate”命令进行数据迁移时(python manage.py migrate),Django同时也生成了auth_user表,该表中存放的用户信息可以用来登录Django自带的Admin管理后台。

首先,先创建登录admin后台的管理账号:python manage.py createsuperuser

django ldap认证 django登录认证_其他

 

 管理员账号设置为:admin/admin123456

 

admin管理后台登录地址:http://127.0.0.1:8001/admin

使用管理员账号登录后台:

django ldap认证 django登录认证_python_02

 

 创建新的用户admin1/admin1234567,重新登录后台:

 django ldap认证 django登录认证_用户名_03

 

 

引用Django认证登录

Django已帮我们封装好了用户认证登录的相关方法,只需拿来使用即可。并且,同样使用auth_user表中的数据进行验证,前面已经通过Admin后台向该表中添加了用户信息。

打开.../sign/views.py文件,修改login_action函数。

django ldap认证 django登录认证_用户名_04

 

 使用authenticate()函数认证给出的用户名和密码。它接受两个参数:username和password,并且会在用户名密码正确的情况下返回一个user对象,否则authenticate()返回None。authenticate() 只是验证一个用户的证书而已。 而要登录一个用户,使用 login() 。

 通过if语句判断authenticate()返回对象,如果不为None,则说明用户认证通过,调用login()函数进行登录。login()函数接收HttpRequest对象和一个user对象。

 

问题:尝试直接访问http:127.0.0.1:8001/event_manage/时,可以直接打开该页面,那么登录页还有什么用呢?

解决:

修改views.py

django ldap认证 django登录认证_用户名_05

 

 

如果想限制某个视图函数必须登录才能访问,则只需在这个函数的前面加上@login_required的装饰即可。

再次访问http:127.0.0.1:8001/event_manage/,Django会告诉访问的页面不存在(Page not found 404)。

 django ldap认证 django登录认证_用户认证_06

 

 访问被@login_required装饰的视图时,默认跳转的URL中会包含“/accounts/login/”,接下来继续修改,当用户访问登录后的页面时,让用户直接跳转至登录页。

修改.../urls.py文件,增加新的路径配置

django ldap认证 django登录认证_用户名_07

 

 此时,当用户访问http:127.0.0.1:8001/event_manage/时,会跳转到登录页:

但是,如果你访问的是其他不存在的路径,比如/abc/,则依然会显示如图3.11所示的页面。这个时候需要设置默认的404页面django ldap认证 django登录认证_用户名_08

但是,如果你访问的是其他不存在的路径,比如/abc/,则依然会显示404页面。这个时候需要设置默认的404页面.