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

Кроме того, можно добавить на сайт аутентификацию с помощью таких служб, как Facebook, Twitter или Google. Python-social-auth — это модуль Python, который упрощает процесс добавления авторизации через соц.сети. Используя этот модуль, можно позволить пользователям входить на сайт, используя учетные записи других служб. Код этого модуля можно найти здесь: https://github.com/omab/python-social-auth

Для установки модуля выполните следующую команду в терминале:

pip install python-social-auth==0.2.12

Затем добавьте social.apps.django_app.default в качестве параметра параметра INSTALLED_APPS в файле settings.py:

INSTALLED_APPS = (
    #...
    'social.apps.django_app.default',
)

Теперь выполните следующую команду для синхронизации моделей python-social-auth с базой данных:

python manage.py migrate

На выходе вы должны увидеть следующее:

Applying default.0001_initial... OK
Applying default.0002_add_related_name... OK
Applying default.0003_alter_email_max_length... OK

Мы собираемся включить авторизацию через Facebook, Twitter и Google.

Требуется добавить в проект шаблоны URL-адресов для входа в систему. Откройте главный файл urls.py проекта bookmarks и добавьте в него следующий шаблон URL-адреса:

url('social-auth/', include('social.apps.django_app.urls', namespace='social')),

Для выполнения авторизации через соц.сети потребуется имя хоста, поскольку несколько служб не допускают перенаправление на 127.0.0.1 или localhost. Чтобы исправить это, в ОС Linux или Mac OS x измените файл /etc/hosts (для windows путь будет таким C:\Winwows\System32\Drivers\etc\hosts) и добавьте в него следующую строку:

127.0.0.1 mysite.com

Чтобы проверить, работает ли редирект, откройте http://mysite.com:8000/account/login/ в браузере. Если вы увидите страницу входа в приложение, то все было сделано правильно.

results matching ""

    No results matching ""