Django官方文檔翻譯——Django中的用戶身份驗證(User authentication in Django)

原文地址:https://docs.djangoproject.com/en/3.0/topics/auth/

Django中的用戶權限驗證

Django本身自帶了一個權限驗證系統,它可以用來處理用戶賬戶、組的權限認證和以cookie-based爲基礎的用戶會話問題。這部分的文檔解釋了該系統的默認實現是如何做到開箱即用(work out of box)的,也會告訴你如何對它進行擴展與定製,以達到讓他適合你項目需求的目標。


概述

Django的權限認證系統同時處理身份的驗證和授權的問題。簡單來說,身份驗證用來驗證用戶的身份(他是誰),然後授權決定一個通過身份驗證的用戶能夠做什麼(他能做什麼),而這裏使用到的身份驗證這個術語指代的便是這兩個東西

認證系統包括:

  • 用戶賬戶

  • 權限認證:用一個二進制標誌來指示一個用戶是否能夠執行某個特定任務

  • 組:將標籤和權限許可用於多個用戶以實現方便管理的一個方法

  • 一個可配置的密碼散列系統

  • 用於登陸用戶或內容進行限制的表單或視圖工具

  • 可拔插的後端系統

Django的權限驗證系統的設計目標是有非常高的通用性,而不是提供web權限驗證系統中常見的一些特性。因爲這些常見的問題的解決方案已經被一些第三方庫實現。

  • 密碼強度檢查
  • 登陸請求超量限制

  • 針對第三方的權限驗證(如OAuth)

  • 對象級權限

安裝

在Django中,權限驗證系統被綁定爲django.contrib模塊,通過import django.contrib.auth引入,在默認情況下,該系統的所需要的配置已經由django-admin startproject setting.py生成的setting.py集成,並在你的INSTALLED_APPS中對兩個事項進行了設置:

  1. 'django.contrib.auth'包含身份驗證框架的核心,以及它的默認模型
  2. 'django.contrib.contenttypes'是Django的內容類型系統,它可以將你的模型與權限相關聯

並且這些事項在你的中間件中也有設置:

  1. SessionMiddleware管理跨請求的會話

  2. AuthernticationMiddleware使用會話將用戶與請求關聯起來

有了這些設置,運行manage.py migrate這一命令爲與auth相關的模型創建必要的數據庫表,併爲安裝的應用程序中定義的任何模型創建權限

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章