Модуль 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"