Django social-auth (vk) - PullRequest
       30

Django social-auth (vk)

0 голосов
/ 06 февраля 2020

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 .

Но в базе данных появляется новый пользователь, токен для него и т. д.

Буду признателен любому помощь.

...