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:

  1. 'django.contrib.auth' innehåller kärnan i autentiseringsramverket och dess standardmodeller.

  2. '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:

  1. SessionMiddleware hanterar sessions över förfrågningar.

  2. 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

Anpassning av användare och autentisering

Lösenordshantering i Django