zoukankan      html  css  js  c++  java
  • Django的认证系统

    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('密码')

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    bzoj1937 [Shoi2004]Mst 最小生成树(KM)
    poj2195 Going Home(费用流|KM)
    poj1689 Alice's Chance(最大流)
    poj3686 The Windy's(真没想到poj上的题目描述都这么迷)
    poj3686 The Windy's(真没想到poj上的题目描述都这么迷)
    poj3686The Windy's(费用流)
    HDU 5880 Family View (AC自动机)
    HDU 1226 超级密码 (BFS)
    HDU 2083 简易版之最短距离
    HDU 2047 阿牛的EOF牛肉串 (递推)
  • 原文地址:https://www.cnblogs.com/xiaole-7890/p/9812908.html
Copyright © 2011-2022 走看看