Модуль AllAuth:
(источник)Для начала, необходимо установить данный модуль в вашем виртуальном окружении следующей командой:
pip install --upgrade pip pip install django-allauth
Далее, вы можете установить редирект на разные посадочные страницы, например для Клиента, Водителя и Администратора.
Далее, в папке проекта нужно создать папку "users" и внутри её создать файл "adapter.py" со следующим кодом:
from allauth.account.adapter import DefaultAccountAdapter class MyAccountAdapter(DefaultAccountAdapter): def get_login_redirect_url(self, request): if hasattr(request.user, "taxidriver"): path = "/all_orders/" else: if hasattr(request.user, "clientprofile"): path = "/client_orders/" else: path = "/order/" return path.format(username=request.user.username)
Далее, в файл "settings.py" в раздел "INSTALLED_APPS" необходимо добавить имя ранее созданной папки "users":
'users', 'django.contrib.sites', 'allauth', 'allauth.account', 'allauth.socialaccount', #'allauth.socialaccount.providers.facebook', #Временно Закоментирован 'allauth.socialaccount.providers.google', 'allauth.socialaccount.providers.instagram', 'allauth.socialaccount.providers.linkedin', 'allauth.socialaccount.providers.mailru', 'allauth.socialaccount.providers.odnoklassniki', 'allauth.socialaccount.providers.pinterest', 'allauth.socialaccount.providers.twitter', 'allauth.socialaccount.providers.vk',
????? - LOGIN_REDIRECT_URL = '/contacts/' ???????????????????????????
????? - Далее, после данного раздела, но перед разделом "MIDDLEWARE" нужно вставить следующий код:
????? - SITE_ID = 1
А так-же, после всего раздела "TEMPLATES" нужно вставить следующий код:
ACCOUNT_ADAPTER = 'users.adapter.MyAccountAdapter' AUTHENTICATION_BACKENDS = ( #... # Needed to login by username in Django admin, regardless of `allauth` 'django.contrib.auth.backends.ModelBackend', # `allauth` specific authentication methods, such as login by e-mail 'allauth.account.auth_backends.AuthenticationBackend', #... )
Далее, в файл "urls.py" необходимо добавить ссылку на модуль:
path('accounts/', include('allauth.urls')),
После внесения всех вышеизложенных правок, необходимо произвести Миграцию базы данных следующей командой в консоли:
python manage.py migrate
Перерь все установлено и настроено.
Наш модуль доступен по следующей ссылке "http://localhost:8000/accounts/login/".
Операция "LogOut" доступна по следующей ссылке "http://localhost:8000/accounts/logout"