Backend: Django с Django Rest Fraemwork
Внешний интерфейс: Angular 2
У меня не было особых проблем с настройкой авторизации и регистрации oauth2 с использованием "Django OAuth Toolkit" ( документы )
Но у меня проблемы с социальной аутентификацией (vk). Я использую social-auth-app- django ( docs ). Настройте приложение vk, используя api docs, установите redirect_uri
(http://localhost:8000/.../social/complete/vk-oauth2/
).
Мой Django файл конфигурации:
AUTHENTICATION_BACKENDS = (
'social_core.backends.vk.VKOAuth2',
'oauth2_provider.backends.OAuth2Backend',
'django.contrib.auth.backends.ModelBackend',
)
SOCIAL_AUTH_POSTGRES_JSONFIELD = True
SOCIAL_AUTH_PIPELINE = (
'social_core.pipeline.social_auth.social_details',
'social_core.pipeline.social_auth.social_uid',
'social_core.pipeline.social_auth.social_user',
'social_core.pipeline.user.get_username',
'social_core.pipeline.user.create_user',
'social_core.pipeline.social_auth.associate_user',
'social_core.pipeline.social_auth.load_extra_data',
'social_core.pipeline.user.user_details',
'social_core.pipeline.social_auth.associate_by_email',
)
# keys from vk registered app
SOCIAL_AUTH_VK_OAUTH2_KEY = '...'
SOCIAL_AUTH_VK_OAUTH2_SECRET = '...'
SOCIAL_AUTH_URL_NAMESPACE = 'social'
SOCIAL_AUTH_VK_OAUTH2_SCOPE = ['email']
NEW_USER_REDIRECT_URL = '/my/profile'
LOGIN_URL = "/my/profile"
И я добавлю url('', include('social_django.urls', namespace='social'))
к своему urlpatterns
.
После этого я отправляю запрос на http://localhost:8000/.../social/login/vk-oauth2
с angular, и все идет хорошо: - браузер перенаправляет на https://oauth.vk.com/authorize
. - Я захожу на ВК и даю доступ к своей странице. - браузер перенаправляет на http://localhost:8000/.../my/profile
, , и я получаю 401 .
Но в базе данных появляется новый пользователь, токен для него и т. д.
Буду признателен любому помощь.