Поиск по сайту:

Электронная почта и вход через социальные сети в 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, может сделать процесс внедрения более плавным и быстрым.

Статьи по данной тематике: