Django 中的使用者身分驗證

Django 內建使用者身分驗證系統。它處理使用者帳戶、群組、權限和基於 Cookie 的使用者會話。文件此部分說明預設實作如何運作,以及如何擴展和自訂它以符合您的專案需求。

總覽

Django 的驗證系統處理身分驗證和授權。簡而言之,身分驗證會驗證使用者是否為其聲稱的身分,而授權則決定已驗證的使用者可以執行哪些操作。此處術語「身分驗證」用於指稱這兩項任務。

驗證系統包含

  • 使用者

  • 權限:二元 (是/否) 旗標,指定使用者是否可以執行特定任務。

  • 群組:一種將標籤和權限套用至多個使用者的通用方式。

  • 可設定的密碼雜湊系統

  • 用於登入使用者或限制內容的表單和檢視工具

  • 可外掛的後端系統

Django 中的驗證系統旨在非常通用,並且不提供網頁驗證系統中常見的一些功能。一些常見問題的解決方案已在第三方套件中實作

  • 密碼強度檢查

  • 登入嘗試次數限制

  • 針對第三方的身分驗證 (例如 OAuth)

  • 物件層級權限

安裝

驗證支援以 Django contrib 模組的形式捆綁在 django.contrib.auth 中。依預設,所需的組態已包含在 django-admin startproject 產生的 settings.py 中,這些組態包含在您的 INSTALLED_APPS 設定中列出的兩個項目

  1. 'django.contrib.auth' 包含驗證框架的核心及其預設模型。

  2. 'django.contrib.contenttypes' 是 Django 內容類型系統,可讓權限與您建立的模型相關聯。

以及在您的 MIDDLEWARE 設定中的這些項目

  1. SessionMiddleware 管理跨請求的會話

  2. AuthenticationMiddleware 使用會話將使用者與請求關聯。

在這些設定就位後,執行命令 manage.py migrate 會為 auth 相關模型建立必要的資料庫表格,並為您已安裝的應用程式中定義的任何模型建立權限。

使用方式

使用 Django 的預設實作

預設實作的 API 參考

自訂使用者和身分驗證

Django 中的密碼管理

回到頂端