Django 中的使用者身分驗證¶
Django 內建使用者身分驗證系統。它處理使用者帳戶、群組、權限和基於 Cookie 的使用者會話。文件此部分說明預設實作如何運作,以及如何擴展和自訂它以符合您的專案需求。
總覽¶
Django 的驗證系統處理身分驗證和授權。簡而言之,身分驗證會驗證使用者是否為其聲稱的身分,而授權則決定已驗證的使用者可以執行哪些操作。此處術語「身分驗證」用於指稱這兩項任務。
驗證系統包含
使用者
權限:二元 (是/否) 旗標,指定使用者是否可以執行特定任務。
群組:一種將標籤和權限套用至多個使用者的通用方式。
可設定的密碼雜湊系統
用於登入使用者或限制內容的表單和檢視工具
可外掛的後端系統
Django 中的驗證系統旨在非常通用,並且不提供網頁驗證系統中常見的一些功能。一些常見問題的解決方案已在第三方套件中實作
密碼強度檢查
登入嘗試次數限制
針對第三方的身分驗證 (例如 OAuth)
物件層級權限
安裝¶
驗證支援以 Django contrib 模組的形式捆綁在 django.contrib.auth
中。依預設,所需的組態已包含在 django-admin startproject
產生的 settings.py
中,這些組態包含在您的 INSTALLED_APPS
設定中列出的兩個項目
'django.contrib.auth'
包含驗證框架的核心及其預設模型。'django.contrib.contenttypes'
是 Django 內容類型系統,可讓權限與您建立的模型相關聯。
以及在您的 MIDDLEWARE
設定中的這些項目
SessionMiddleware
管理跨請求的會話。AuthenticationMiddleware
使用會話將使用者與請求關聯。
在這些設定就位後,執行命令 manage.py migrate
會為 auth 相關模型建立必要的資料庫表格,並為您已安裝的應用程式中定義的任何模型建立權限。