1. 程式人生 > >使用者認證元件

使用者認證元件

 

 

功能:用session記錄登入驗證狀態

前提:使用者表:django自帶的auth_user

python3 manage.py makemigrations

python3 manage.py migrate

建立超級使用者:python3 manage.py  createsuperuser 

API:

from django.contrib import auth

auth.authenticate(username=user,password=pwd)  # 驗證使用者名稱密碼

auth.login(request,user)    # 登入成功後,request.user當前登入使用者

auth.logout()  # 登出使用者

from django.contrib.auth.models import User #User == auth_user

request.user.is_authenticated()   True False

user= User.objects.create_user(username='',password='',email='')

補充:

   匿名使用者物件:

    匿名使用者

    class models.AnonymousUser

    django.contrib.auth.models.AnonymousUser 類實現了django.contrib.auth.models.User介面,但具有下面幾個不同點:

    id 永遠為None

    username 永遠為空字串

    get_username()永遠返回空字串

    is_staff和is_superuser永遠為False

    is_active 永遠為False

    groups和user_permissions永遠為空

    is_anonymous() 返回True 而不是False

    set_password(),check_password(),save()和delete()引發NotImplementedError.

    New in Django 1.8:

      新增AnonymousUser.get_username()以更好地模擬django.contrib.auth.models.User.

          總結:request.user

        if not: auth.login(request,user) request.user == AnonymousUser()

        else: request.user==登入物件

        request.user是一個全域性物件

        在任何檢視和模板直接使用

 認證裝飾器:@login_required

 

也可以不用傳

 

登出:

 

 

 使用者註冊:

 

 

認證裝飾器

==>