Django認證系統同時處理認證和授權。簡單地講,認證驗證一個使用者是否它們聲稱的那個人,授權決定一個通過了認證的使用者被允許做什麼。這裡的詞語“認證”同時指代這兩項任務。
認證系統包含:
使用者
權限:二進制(是/否)标志訓示一個使用者是否可以做一個特定的任務。
組:對多個使用者運用标簽和權限的一種通用的方式。
一個可配置的密碼哈希系統
用于登入使用者或限制内容的表單和視圖
一個可插拔的背景系統
使用:
位于django.contrib.auth,配置在settings.py中的
INSTALLED_APPS = [
'django.contrib.auth', #包含認證架構的核心和預設的模型。
'django.contrib.contenttypes',] #是Django内容類型系統,它允許權限與你建立的模型關聯。
和
MIDDLEWARE = [
'django.contrib.sessions.middleware.SessionMiddleware',#管理請求之間的會話。
'django.contrib.auth.middleware.AuthenticationMiddleware',] #使用會話将使用者與請求關聯起來。
有了這些設定,運作manage.py migrate指令将為認證相關的模型建立必要的資料庫表并為你的應用中定義的任意模型建立權限
登入:
登出:
隻允許登入的使用者通路:
方法一:
方法二:
login_required裝飾器
主要完成兩件事:
1、如果使用者沒有登入,則重定向到settings.LOGIN_URL(需要設定),并将目前通路的絕對路徑傳遞到查詢字元串中。例如:/accounts/login/?next=/polls/3/。
2、如果使用者已經登入,則正常執行視圖。視圖的代碼可以安全地假設使用者已經登入。
跳轉到登入之前的頁面,即next=XXX頁面:
本文轉自 AltBoy 51CTO部落格,原文連結:http://blog.51cto.com/altboy/1958396