# Django 中的用戶認證 #
Django從開始就帶有一個用戶認證系統。它處理用戶賬號、組、權限以及基于cookie的用戶會話。本節文檔解釋默認的實現如何直接使用,以及如何[擴展和定制](http://python.usyiyi.cn/django/topics/auth/customizing.html)它以適合你項目的需要。
## 概覽 ##
Django認證系統同時處理認證和授權。簡單地講,認證驗證一個用戶是它們聲稱的那個人,授權決定一個認證通過的用戶允許做什么。這里的詞語認證同時指代這兩項任務。
認證系統包含:
+ 用戶
+ 權限:二元(是/否)標志指示一個用戶是否可以做一個特定的任務。
+ 組:對多個用戶運用標簽和權限的一種通用的方式。
+ 一個可配置的密碼哈希系統
+ 用于登錄用戶或限制內容的表單和視圖
+ 一個可插拔的后臺系統
Django中的認證系統的目標是非常通用且不提供在web認證系統中某些常見的功能。某些常見問題的解決方法已經在第三方包中實現:
+ 密碼強度檢查
+ 登錄嘗試的制約
+ 第三方認證(例如OAuth)
## 安裝 ##
認證的支持作為Django的一個contrib模塊,打包于`django.contrib.auth`中。默認情況下,要求的配置已經包含在`django-admin startproject`生成的`settings.py`中,它們的組成包括`INSTALLED_APPS`設置中的兩個選項:
1. '`django.contrib.auth`'包含認證框架的核心和默認的模型。
2. '`django.contrib.contenttypes`'是Django內容類型系統,它允許權限與你創建的模型關聯。
和`MIDDLEWARE_CLASSES`設置中的兩個選項:
1. `SessionMiddleware`管理請求之間的會話。
2. `AuthenticationMiddleware`使用會話將用戶與請求管理起來。
有了這些設置,運行`manage.py migrate`命令將為認證相關的模型創建必要的數據庫表并為你的應用中定義的任意模型創建權限。
## 使用 ##
[使用Django默認的實現](http://python.usyiyi.cn/django/topics/auth/default.html)
+ [使用User對象](http://python.usyiyi.cn/django/topics/auth/default.html#user-objects)
+ [權限和授權](http://python.usyiyi.cn/django/topics/auth/default.html#topic-authorization)
+ [Web 請求中的認證](http://python.usyiyi.cn/django/topics/auth/default.html#auth-web-requests)
+ [ 在admin 中管理用戶](http://python.usyiyi.cn/django/topics/auth/default.html#auth-admin)
[默認實現的API參考](http://python.usyiyi.cn/django/ref/contrib/auth.html)
[自定義Users和認證](http://python.usyiyi.cn/django/topics/auth/customizing.html)
[Django中的密碼管理](http://python.usyiyi.cn/django/topics/auth/passwords.html)
> 譯者:[Django 文檔協作翻譯小組](http://python.usyiyi.cn/django/index.html),原文:[Overview](https://docs.djangoproject.com/en/1.8/topics/auth/)。
>
> 本文以 [CC BY-NC-SA 3.0](http://creativecommons.org/licenses/by-nc-sa/3.0/cn/) 協議發布,轉載請保留作者署名和文章出處。
>
> [Django 文檔協作翻譯小組](http://python.usyiyi.cn/django/index.html)人手緊缺,有興趣的朋友可以加入我們,完全公益性質。交流群:467338606。
- 新手入門
- 從零開始
- 概覽
- 安裝
- 教程
- 第1部分:模型
- 第2部分:管理站點
- 第3部分:視圖和模板
- 第4部分:表單和通用視圖
- 第5部分:測試
- 第6部分:靜態文件
- 高級教程
- 如何編寫可重用的應用
- 為Django編寫首個補丁
- 模型層
- 模型
- 模型語法
- 元選項
- 模型類
- 查詢集
- 執行查詢
- 查找表達式
- 模型的實例
- 實例方法
- 訪問關聯對象
- 遷移
- 模式編輯器
- 編寫遷移
- 高級
- 管理器
- 原始的SQL查詢
- 聚合
- 多數據庫
- 自定義查找
- 條件表達式
- 數據庫函數
- 其它
- 遺留的數據庫
- 提供初始數據
- 優化數據庫訪問
- 視圖層
- 基礎
- URL配置
- 視圖函數
- 快捷函數
- 裝飾器
- 參考
- 內建的視圖
- TemplateResponse 對象
- 文件上傳
- 概覽
- File 對象
- 儲存API
- 管理文件
- 自定義存儲
- 基于類的視圖
- 概覽
- 內建顯示視圖
- 內建編輯視圖
- API參考
- 分類索引
- 高級
- 生成 CSV
- 生成 PDF
- 中間件
- 概覽
- 內建的中間件類
- 模板層
- 基礎
- 面向設計師
- 語言概覽
- 人性化
- 面向程序員
- 表單
- 基礎
- 概覽
- 表單API
- 內建的Widget
- 高級
- 整合媒體
- 開發過程
- 設置
- 概覽
- 應用程序
- 異常
- 概覽
- django-admin 和 manage.py
- 添加自定義的命令
- 測試
- 介紹
- 部署
- 概述
- WSGI服務器
- 部署靜態文件
- 通過email追蹤代碼錯誤
- Admin
- 管理操作
- 管理文檔生成器
- 安全
- 安全概述
- 說明Django中的安全問題
- 點擊劫持保護
- 加密簽名
- 國際化和本地化
- 概述
- 本地化WEB UI格式化輸入
- “本地特色”
- 常見的網站應用工具
- 認證
- 概覽
- 使用認證系統
- 密碼管理
- 日志
- 分頁
- 會話
- 數據驗證
- 其它核心功能
- 按需內容處理
- 重定向
- 信號
- 系統檢查框架