Django從開始就帶有一個用戶認(rèn)證系統(tǒng)。它處理用戶賬號、組、權(quán)限以及基于cookie的用戶會話。本節(jié)文檔解釋默認(rèn)的實現(xiàn)如何直接使用,以及如何擴展和定制它以適合你項目的需要。
Django認(rèn)證系統(tǒng)同時處理認(rèn)證和授權(quán)。簡單地講,認(rèn)證驗證一個用戶是它們聲稱的那個人,授權(quán)決定一個認(rèn)證通過的用戶允許做什么。這里的詞語認(rèn)證同時指代這兩項任務(wù)。
認(rèn)證系統(tǒng)包含:
Django中的認(rèn)證系統(tǒng)的目標(biāo)是非常通用且不提供在web認(rèn)證系統(tǒng)中某些常見的功能。某些常見問題的解決方法已經(jīng)在第三方包中實現(xiàn):
認(rèn)證的支持作為Django的一個contrib模塊,打包于django.contrib.auth中。默認(rèn)情況下,要求的配置已經(jīng)包含在django-admin startproject生成的settings.py中,它們的組成包括INSTALLED_APPS設(shè)置中的兩個選項:
django.contrib.auth'包含認(rèn)證框架的核心和默認(rèn)的模型。'django.contrib.contenttypes'是Django內(nèi)容類型系統(tǒng),它允許權(quán)限與你創(chuàng)建的模型關(guān)聯(lián)。
和MIDDLEWARE_CLASSES設(shè)置中的兩個選項:
SessionMiddleware管理請求之間的會話。AuthenticationMiddleware使用會話將用戶與請求管理起來。有了這些設(shè)置,運行manage.py migrate命令將為認(rèn)證相關(guān)的模型創(chuàng)建必要的數(shù)據(jù)庫表并為你的應(yīng)用中定義的任意模型創(chuàng)建權(quán)限。
譯者:Django 文檔協(xié)作翻譯小組,原文:Overview。
本文以 CC BY-NC-SA 3.0 協(xié)議發(fā)布,轉(zhuǎn)載請保留作者署名和文章出處。
Django 文檔協(xié)作翻譯小組人手緊缺,有興趣的朋友可以加入我們,完全公益性質(zhì)。交流群:467338606。