Как быстро подключить к джанге авторизацию через соц. сети (в качестве примера vk.com, по шагам)
- регаем приложение на vk.com, берем оттуда app_id и secure_key
- pip install python-social-auth
- редактируем settings.py
SOCIAL_AUTH_VK_OAUTH2_KEY = 'наш app_id'
SOCIAL_AUTH_VK_OAUTH2_SECRET = 'наш secure_key'
SOCIAL_AUTH_LOGIN_URL = '/app/oauth2login' # тут ваш url для калбека
SOCIAL_AUTH_USER_MODEL = 'my.ProjectUser' # ваша кастомная модель пользователя
SOCIAL_AUTH_UID_LENGTH = 223
SOCIAL_AUTH_STRATEGY = 'social.strategies.django_strategy.DjangoStrategy'
SOCIAL_AUTH_STORAGE = 'social.apps.django_app.default.models.DjangoStorage'
SOCIAL_AUTH_PIPELINE = (
'social.pipeline.social_auth.social_details',
'social.pipeline.social_auth.social_uid',
'social.pipeline.social_auth.auth_allowed',
'social.pipeline.social_auth.social_user',
'social.pipeline.user.get_username',
'my.social.save_profile', # <--- тут наш метод, работающий с социальной авторизацией
'social.pipeline.social_auth.associate_user',
'social.pipeline.social_auth.load_extra_data',
'social.pipeline.user.user_details',
)
# Всуньте 'social.apps.django_app.default', в INSTALLED_APPS
AUTHENTICATION_BACKENDS = (
'social.backends.vk.VKOAuth2', # тут можете перечислять нужные бекенды
# бекенды и настройки к ним лежат на https://python-social-auth.readthedocs.org/en/latest/backends/index.html
'django.contrib.auth.backends.ModelBackend',
)
- редактируем urls.py
url(r'^app/', include('social.apps.django_app.urls', namespace='social')),
url(r'^app/oauth2login$', 'my.social.oauth2login_view'), # наша вьюха после авторизации
- заскриптовываем вьюху для колбека авторизации, и пишем обработчик для соц.профиля
Вешаем событие открытия новой вкладки на кнопку и готово (не забудьте еще формальность - manage.py migrate)
После успешного подключения VK, можно спокойно подключить все остальные бекенды со страницы
тупо слегка подредактировав настройки, не меняя при этом само приложение
Backends — Python Social Auth documentation
python-social-auth.readthedocs.org