Användarautentisering i Django¶
Django levereras med ett system för användarautentisering. Det hanterar användarkonton, grupper, behörigheter och cookie-baserade användarsessioner. Detta avsnitt av dokumentationen förklarar hur standardimplementeringen fungerar från början, samt hur du utökar och anpassar den för att passa ditt projekts behov.
Översikt¶
Djangos autentiseringssystem hanterar både autentisering och auktorisering. Kortfattat verifierar autentisering att en användare är den som den utger sig för att vara, och auktorisering avgör vad en autentiserad användare får göra. Här används termen autentisering för att hänvisa till båda uppgifterna.
Autentiseringssystemet består av:
Användare
Behörigheter: Binära (ja/nej) flaggor som anger om en användare får utföra en viss uppgift.
Grupper: Ett generiskt sätt att tillämpa etiketter och behörigheter för mer än en användare.
Ett konfigurerbart hashsystem för lösenord
Formulär och visningsverktyg för inloggning av användare eller begränsning av innehåll
Ett pluggbart backend-system
Autentiseringssystemet i Django syftar till att vara mycket generiskt och tillhandahåller inte vissa funktioner som vanligtvis finns i webbautentiseringssystem. Lösningar för några av dessa vanliga problem har implementerats i tredjepartspaket:
Kontroll av lösenordets styrka
Begränsning av inloggningsförsök
Autentisering mot tredje part (t.ex. OAuth)
Behörigheter på objektnivå
Installation¶
Autentiseringsstöd ingår som en Django contrib-modul i django.contrib.auth
. Som standard ingår den nödvändiga konfigurationen redan i settings.py
som genereras av django-admin startproject
, dessa består av två objekt som listas i din INSTALLED_APPS
inställning:
'django.contrib.auth'
innehåller kärnan i autentiseringsramverket och dess standardmodeller.'django.contrib.contenttypes'
är Djangos innehållstypssystem, som gör att behörigheter kan associeras med modeller du skapar.
och dessa objekt i din :inställning:`MIDDLEWARE` inställning:
SessionMiddleware
hanterar sessions över förfrågningar.AuthenticationMiddleware
associerar användare med förfrågningar med hjälp av sessioner.
Med dessa inställningar på plats skapar kommandot manage.py migrate
de nödvändiga databastabellerna för auth-relaterade modeller och behörigheter för alla modeller som definieras i dina installerade appar.
Användning¶
Använder Djangos standardimplementation
API-referens för standardimplementeringen