django-allauth Django 5.x-də qeydiyyat, e-poçt təsdiqi, parol bərpası, sosial giriş və MFA üçün ən geniş yayılmış paketdir. Bu dərsdə onu layihəyə addım-addım qoşacağıq.

Niyə öz autentifikasiyamız yox, allauth

django.contrib.auth istifadəçilər, sessiyalar, login() və icazələri verir. Ətrafındakı hər şeyi - qeydiyyat formaları, təsdiq məktubları, «parolu unutdum», Google və ya GitHub ilə giriş - özünüz yazıb qorumalısınız. allauth bu ssenariləri yoxlanmış defolt ayarlarla təqdim edir.

Ehtiyacdjango.contrib.authdjango-allauth
Giriş / çıxışbəlibəli
Qeydiyyat formuxeyrbəli
E-poçt təsdiqixeyrbəli
Parol bərpasıyalnız view-lartam ssenari
Sosial girişxeyronlarla provayder
MFAxeyrallauth.mfa

💡 allauth həm standart User ilə, həm də xüsusi modellə işləyir (bax xüsusi istifadəçi modeli).

Quraşdırma

Paketi qurun, tətbiqləri, middleware və backend-i əlavə edin, URL-ləri qoşun. TEMPLATES-də django.template.context_processors.request olmalıdır.

bash
pip install django-allauth
python
# settings.py
INSTALLED_APPS = [
    # ... django.contrib.* ...
    'django.contrib.sites',
    'allauth',
    'allauth.account',
    'allauth.socialaccount',
    'allauth.socialaccount.providers.google',
    'allauth.socialaccount.providers.github',
]
SITE_ID = 1

MIDDLEWARE = [
    # ... SessionMiddleware, AuthenticationMiddleware ...
    'allauth.account.middleware.AccountMiddleware',
]

AUTHENTICATION_BACKENDS = [
    'django.contrib.auth.backends.ModelBackend',
    'allauth.account.auth_backends.AuthenticationBackend',
]
LOGIN_REDIRECT_URL = '/'
python
# urls.py
from django.urls import include, path