Авторизация через социальные сети
Кроме того, можно добавить на сайт аутентификацию с помощью таких служб, как 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/ в браузере. Если вы увидите страницу входа в приложение, то все было сделано правильно.