Django之用户认证组件
2019-01-13 15:23
756 查看
用户认证组件用的是Django自带一个表:auth_user
一、auth模块
1,authenticate()判断用户是否存在方法
user=authenticate(username='xxx',password='xxxx') #需要提供两个参数,username,password关键字参数
如果auth_user表中存在这个用户,会返回一个user对象,如果用户不存在,返回None
2,login(request,user)
login(request,user)主要完成以下:把用户的id放入session表中的数据里
1,注入session信息:request.session['user_id']=user.pk
from django.contrib.auth import authenticate, login def my_view(request): username = request.POST['username'] password = request.POST['password'] user = authenticate(username=username, password=password) if user is not None: login(request, user) # Redirect to a success page. ... else: # Return an 'invalid login' error message.
3,logout(request)注销用户
from django.contrib.auth import logout def logout_view(request): logout(request) #注销只是session表里的登录记录,并不是注销的auth_user表的记录 # Redirect to a success page.
二、user对象
只要登录过的用户,访问任何视图的时候都可以使用request.user对象,这就是一个user对象,request.user.name就可以拿到用户的名字,request.user.email就可以得到用户的邮箱,还可以拿到用户的其他信息。除此之外,user对象还拥有以下方法:
1,user对象的is_authenticated()
如果session表里有你的登录记录,那返回值为True,可以用来验证用户是否登录过。
1.1 我们可以自己在每个需要判断的是否登陆过才能访问的视图里面手动写上判断,而且登陆后直接返回最开始请求的页面。
def my_view(request): if not request.user.is_authenticated(): return redirect('%s?next=%s' % (settings.LOGIN_URL, request.path))
1.2 Django自己给我们封装一个装饰器,用来判断用户是否登录过,就和我们用session写的装饰器一样的,只是现在也是登录成功后返回最开始的页面。
from django.contrib.auth.decorators import login_required @login_required def my_view(request):
2,在auth_user表中添加记录,相当于添加一个用户
from django.contrib.auth.models import User User.objects.create_user(username='',password='') User.objects.create_superuser(username="alex",password="123")
3,check_password(password)
用户需要修改密码之前,首先得让他输入原来的密码,如果输入正确返回True,否则返回None,当返回True时,才允许修改密码
4,set_password()修改密码
user = User.objects.get(username='') user.set_password(password='') user.save
相关文章推荐
- 012---Django的用户认证组件
- 06 django的用户认证组件
- django--用户认证组件
- Django - 用户认证组件
- 10.Django用户认证组件
- Django的用户认证组件
- Django1.5内置的用户认证系统介绍(之五)在admin后台管理用户 --by hillfree
- Django用户认证系统(三)组与权限
- django的用户认证管理,如何使用session(2)
- Django1.9开发博客09- 用户认证
- Django权限系统auth模块详解 转自:原文出处 auth模块是Django提供的标准权限管理系统,可以提供用户身份认证, 用户组和权限管理。 auth可以和admin模块配合使用, 快速建
- 五 Django 1.5.4 User Authentication 用户认证
- Django用户认证系统(一)User对象
- Django 中的用户认证 2014
- django rest framework 用户认证
- Django之用户认证系统分析
- 利用Django内置的认证视图实现用户密码重置功能详解
- 基于Django用户认证系统详解
- Django中的用户认证
- django用户认证