Django авторизация через социальные сети

Метки: / / /

В этой статье мы разберём, как делается на Django авторизация через социальные сети, делать это будем с помощью специальной библиотеки Social Auth’s.

Ещё можете посмотреть статью: Как сделать регистрацию на Django, думаю вам будет интересно.

Также стоит сказать, что эта статья по сути перевод старта этой библиотеки, в самом конце будет ссылка на всё документацию.

Установка:

Для установки используем pip, то есть как обычный пакет:

После этого как обычную библиотеку в Django добавляем в список INSTALLED_APPS:

Теперь делаем миграции:

Ещё для удобства для хранения данных авторизации лучше использовать JSON объект, для этого в настройки нужно добавить такую строчку:

После этого можете работать с библиотекой.

Для MongoEngine:

Ещё стоит упомянуть, если вы используете MongoEngine, вам нужно другую версию библиотеки скачать, но в остальном всё также, вот что вписываем:

Точно также добавляем эту версию в INSTALLED_APPS:

Также для работы библиотеки с использованием MongoEngine, нужно добавить в «setting.py», переменную SOCIAL_AUTH_STORAGE:

Тут вам не надо делать миграции.

Основы создания авторизации:

Теперь разберём как делается авторизация с использованием этой библиотеки, сделать это можно очень просто и быстро.

Также стоит сказать, что здесь не будет подробно описывать как сделать авторизацию через Google или Вконтакте, а скорее просто показа базовых настройка и компонентов.

Первым делом вам нужно подключить компоненты для авторизации через нужные нам социальные сети, их добавим в список AUTHENTICATION_BACKENDS, который находиться во файле «setting.py»:

Как можете заметить, мы тут подключили регистрацию через FaceBook, Вконтакте и Google, в конце стандартная авторизация Django, теперь там же добавляема настройки для этих социальных сетей:

То есть тут нам нужны только ключи для работы с API социальных сетей, так же есть дополнительные настройки, которые вы тоже можете использовать.

  • social_details — Получаем информацию о пользователе и возвращаем ее в простом формате для создания экземпляра пользователя. В некоторых случаях это уже являются частью ответа  авторизации, но иногда это может попасть в API социальной сети;
  • social_uid — Получаем уникальный идентификатор из социальной сети;
  • auth_allowed — проверяет, что текущий процесс аутентификации действителен в текущем проекте, проверяет белые списки электронной почты;
  • social_user — Проверяет, связана ли уже текущая учетная запись социальной сети с сайтом;
  • get_username — Придумывает новое имя пользователя, на основе имеющихся данных;
  • create_user — Создают учетную запись пользователя, если еще её нету;
  • associate_user — Создают запись, которая связывает существующую учетную запись со социальной сетью этого пользователя;
  • extra_data — Получает и обновляет social_user.extra_data;
  • user_details — Обновляет данные пользователя;
  • associate_by_email — Связывает текущую авторизацию с пользователем с таким же адресом электронной почты в БД;

Их все можно применить в настройках, в списке SOCIAL_AUTH_PIPELINE, вот пример:

Осталось совсем не много, теперь нужно в «urls.py», прописать URL для авторизации, вот как это делается:

Ещё в настройки шаблонов добавляем пару строчек, находиться они в «setting.py»:

После этого в шаблоне можем использовать, например такую запись:

Таким образом, мы сделали авторизацию через социальные сети.

Вывод:

В этой статье вы прочитали, как сделать авторизацию через социальные сети на Python Django, использовав для этого специальную библиотеку, если хотите узнать о ней подробнее, то почитайте документацию.

Подписываетесь на соц-сети:

Поделится:

Также рекомендую:

Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x