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.
| Ehtiyac | django.contrib.auth | django-allauth |
|---|---|---|
| Giriş / çıxış | bəli | bəli |
| Qeydiyyat formu | xeyr | bəli |
| E-poçt təsdiqi | xeyr | bəli |
| Parol bərpası | yalnız view-lar | tam ssenari |
| Sosial giriş | xeyr | onlarla provayder |
| MFA | xeyr | allauth.mfa |
💡 allauth həm standart
Userilə, 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.
pip install django-allauth# 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 = '/'# urls.py
from django.urls import include, path