Электронная почта и вход через социальные сети в Django — пошаговое руководство
Вход через электронную почту и социальные сети – это распространенные методы для веб-сайтов и приложений, позволяющие пользователям создавать учетные записи или регистрироваться. Пользователи должны предоставить свой адрес электронной почты и пароль для входа в систему по электронной почте, однако вход через социальные сети позволяет пользователям входить в систему, используя свои учетные записи в социальных сетях. , например Facebook или Google. В этом уроке мы рассмотрим, как настроить электронную почту и вход в социальные сети в Django.
Метод
С Django существует множество способов объединить электронную почту и социальные сети. Пакет Django-allauth, который поддерживает аутентификацию для многочисленных способов входа в систему, включая электронную почту и социальные сети, является одним из наиболее распространенных. Другой подход — использовать пакет Django-social-auth, который предлагает социальную аутентификацию для различных служб социальных сетей.
Синтаксис
Установка Джанго-Аллаута —
pip install django-allauth
Установка Django-social-auth —
pip install django-social-auth
Следующий код иллюстрирует использование Django-allauth для реализации входа в систему по электронной почте и через социальные сети в Django.
Алгоритм
-
Должен быть установлен Django-allauth или Django-social-auth.
В settings.py настройте серверы аутентификации.
В urls.py включите URL-адреса allauth.
Для создания таблиц базы данных и выполнения миграции.
Настройте серверную часть электронной почты для проверки электронной почты.
Измените шаблоны, чтобы они соответствовали внешнему виду вашего сайта.
Включите следующие URL-адреса в urls.py:
path('accounts/', include('allauth.urls')),
В urls.py строка кода «path('accounts/', include('allauth.urls'))» содержит URL-адреса, заданные пакетом Django-allauth, который управляет аутентификацией для нескольких методов входа, включая электронную почту и социальные сети. логины. Эта строка кода преобразует URL-адрес «accounts/» в URL-адреса allauth, позволяя пользователям получать доступ к представлениям аутентификации Django-allauth.
Выполните миграцию, чтобы создать необходимые таблицы базы данных.
Настройте сервер электронной почты в settings.py, чтобы включить проверку электронной почты:
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
Настройте шаблоны в templates/account/ в соответствии с дизайном вашего сайта.
Выполните следующие шаги, чтобы создать среду и каталог проекта:
Python и pip должны быть установлены.
С помощью virtualenv или venv создайте виртуальную среду.
Включите виртуальную среду.
С помощью pip установите Django.
С помощью команды «django-admin startproject» создайте новый проект Django.
С помощью команды «python Manage.py startapp» создайте новое приложение Django в проекте.
В файле settings.py добавьте новое приложение в список УСТАНОВЛЕННЫХ ПРИЛОЖЕНИЙ.
В файле models.py определите модели приложения.
-
Используя команды «python Manage.py makemigrations» и «python Manage.py Migration», создайте таблицы базы данных.
В settings.py настройте серверы аутентификации.
Используйте строку кода «path('accounts/', include('allauth.urls'))», чтобы включить URL-адреса allauth в urls.py.
В settings.py настройте серверную часть электронной почты для проверки электронной почты.
Измените шаблоны в templates/account/, чтобы они соответствовали стилю вашего сайта.
Используйте «python Manage.py runserver», чтобы запустить сервер разработки Django и проверить электронную почту и вход в социальные сети.
Пример
Первый фрагмент кода (в файле settings.py) следует добавить в файл settings.py вашего проекта, в котором вы устанавливаете параметры конфигурации для вашего проекта Django.
# settings.py
INSTALLED_APPS = [
'...';
'allauth',
'allauth.account',
'allauth.socialaccount',
'allauth.socialaccount.providers.google',
'allauth.socialaccount.providers.facebook',
...
]
AUTHENTICATION_BACKENDS = [
'django.contrib.auth.backends.ModelBackend',
'allauth.account.auth_backends.AuthenticationBackend',
]
SOCIALACCOUNT_PROVIDERS = {
'google': {
'APP': {
'client_id': 'YOUR_CLIENT_ID',
'secret': 'YOUR_SECRET_KEY',
'key': ''
}
},
'facebook': {
'APP': {
'client_id': 'YOUR_CLIENT_ID',
'secret': 'YOUR_SECRET_KEY',
'key': ''
}
}
}
Второй фрагмент кода (в urls.py) следует добавить в файл urls.py вашего проекта, где вы указываете шаблоны URL-адресов вашего проекта Django.
# urls.py
from django.urls import path, include
urlpatterns = [
...
path('accounts/', include('allauth.urls')),
...
]
Не забудьте изменить значения «ВАШ ИДЕНТИФИКАТОР КЛИЕНТА» и «ВАШ СЕКРЕТНЫЙ КЛЮЧ» на свои настоящие учетные данные консоли разработчика Google и Facebook. Наконец, перед выполнением проекта Django обязательно установите все необходимые пакеты (например, Django-allauth).
Выход
Пользователи могут создавать учетные записи или входить в систему, используя свою электронную почту или учетные записи социальных сетей после интеграции электронной почты и входа в социальные сети с помощью Django-allauth или Django-social-auth.
Заключение
Использование электронной почты и социальных сетей в Django может улучшить взаимодействие с пользователем и упростить процесс создания учетной записи. Использование таких пакетов, как Django-allauth или Django-social-auth, может сделать процесс внедрения более плавным и быстрым.