1. 程式人生 > >用戶認證組件

用戶認證組件

裝飾器 成功 word rmi none 驗證 ted The else

功能:用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

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

也可以不用傳

技術分享圖片

技術分享圖片

註銷:

技術分享圖片

技術分享圖片

用戶註冊:

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

認證裝飾器

技術分享圖片

==>

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

用戶認證組件