auth认证模块

Posted wen-kang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了auth认证模块相关的知识,希望对你有一定的参考价值。

1. 创建超级用户

命令行输入:  python manage.py createsuperuser

from django.contrib import auth

2. auth.authenticate(username=username, password=pwd)
验证用户名和密码
如果验证成功,得到的是一个用户对象
如果验证失败,得到的是匿名用户

3. auth.login(request, user)
将验证过的用户 赋值给 request.user属性

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

实现代码如下:格外注意对象一致

 1 from django.contrib import auth
 2 def login(request):
 3     if request.method==POST:
 4         user=request.POST.get(user)
 5         pwd=request.POST.get(psd)
 6         use=auth.authenticate(username=user,password=pwd)
 7         auth.login(request,use)
 8         if use:
 9             return render(request,welecome.html,{user:use})
10         else:
11             return redirect(login.html)
12     return render(request,login.html)

4. auth.logout(request)

request.session.flush()
将session数据都删除,并且Cookie也失效

1 def logout(request):
2     auth.logout(request)
3     return redirect(/login/)

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>检查登录状态:

添加一个装饰器    @login_required()

from django.contrib.auth.decorators import login_required

1 @login_required()
2 def welcome(request):
3     print(request.user.username)
4     print(request.user.is_authenticated())
5     return render(request,welecome.html)

同时还需要指定如果未登录状态,访问的地址,在seeting文件下面设置要访问的url

1 #如果没有登录,默认跳转到这个url
2 LOGIN_URL=/login/

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

创建一个普通用户对象:

 1 def register(request):
 2     from django.contrib.auth.models import User
 3     #创建一个用户对象
 4     user_obj=User.objects.create_user(username=ccc,password=lisa123456)
 5     #校验密码是否正确
 6     ret=user_obj.check_password(lisa123456)
 7     print(ret)
 8     #修改密码
 9     user_obj.set_password(nokia12138)
10     user_obj.save()   #一定不能忘记提交保存
11     return HttpResponse(ok)

 












以上是关于auth认证模块的主要内容,如果未能解决你的问题,请参考以下文章

Auth认证模块

auth模块用户认证

Django之auth模块用户认证模块

Django框架之 auth认证模块

用户认证--------------auth模块

09.用户认证auth模块