码迷,mamicode.com
首页 > 其他好文 > 详细

Django的认证系统

时间:2018-10-18 20:49:10      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:工具   username   color   信息   校验   woe   django   成功   return   

auth模板

from django.contrib import auth

auth中提供了许多实用方法:

authenticate()

提供了用户认证功能,即认证用户以及密码是否正确,一般需要username、password两个关键字参数。

如果认证成功(用户名和密码正确有效),便会返回一个User对象。

authenticate()会在该User对象上设置一个属性来标识后端已经认证了该用户,且该信息在后续的登录过程中是需要的。

用法:

from django.contrib import auth
def login(request):
    if request.method == POST:
        username = request.POST.get(username)
        password = request.POST.get(password)
        obj = auth.authenticate(request,username=username,password=password)
        if obj:
            #记录登录状态
            auth.login(request,obj)
            #取到跳转后的url,赋值给next
            next = request.GET.get(next)
            #判断next是否取到值
            if next:
                return redirect(next)
            return redirect(/index/)
    #返回登录页面
    return render(request,login.html)

logout

该函数接收一个HttpRequest对象,无返回值.

当调用该函数时,当前请求的session信息会全部清除.该用户即使没有登录,使用该函数也不会报错.

用法:

from django.contrib.auth import logout
   
def logout_view(request):
  logout(request)
  # Redirect to a success page.

is_authenticated()

用来判断当前请求是否通过了认证.

用法:

 

def my_view(request):
  if not request.user.is_authenticated():
    return redirect(%s?next=%s % (settings.LOGIN_URL, request.path))

 

login_requierd()

auth给我们提供的一个装饰器工具,用来快捷的给某个视图添加登录校验.

用法;

from django.contrib.decorators import login_required

@login_required
def my_view(request)
    ...

若用户没有登录,则会跳转到django默认的登录URL‘/accounts/login/‘并传递当前访问url的绝对路径(登录成功后,会重定向到该路径).

如果需要自定义登录的URL,则需要在settings.py文件中通过LOGIN_URL进行修改.

示列:

LOGIN_URL = /login/  # 这里配置成你项目登录页面的路由

create_user()

auth提供的一个创建新用户的方法,需要提供必要参数(username、password)等。

用户:

 

from django.contrib.auth.models import User
user = User.objects.create_user(username=用户名,password=密码,email=邮箱,...)

 

create_superuser()

auth提供的一个创建新的超级用户的方法,需要提供必要参数(username、ppasswoed)等。

用法:

from django.contrib.auth.models import User
user = User.objects.create_superuser(username=用户名,password=密码,email=邮箱,...)

check_password(password)

auth提供的一个检查密码是否正确的方法,需要提供当前用户的密码。

密码正确返回True,否则返回False。

用法:

ok = user.check_password(密码)

 

 

 

 

 

 

 

 

 

 

Django的认证系统

标签:工具   username   color   信息   校验   woe   django   成功   return   

原文地址:https://www.cnblogs.com/xiaole-7890/p/9812908.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!