Django rest social auth custom PIPELINES не работает вообще

Я создал социальный аутентификатор с facebook и google, и они работают просто отлично. Однако, когда я регистрирую пользователя классическим способом django signup, я отправляю ему письмо, чтобы подтвердить его аккаунт, а затем устанавливаю user.is_email_verified в True. Таким образом, не имеет смысла просить пользователя подтвердить свой email, если он регистрируется через social auth, и мне нужно установить is_email_verified==True в пользовательском конвейере.

  • Проблема: функция handle_social_auth вообще не работает. Я также установил функцию print, чтобы проверить, работает ли она с консоли.
#settings.py
REST_FRAMEWORK = {
    'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.coreapi.AutoSchema',
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework.authentication.TokenAuthentication',
    ),
}


SOCIALACCOUNT_PROVIDERS = {
    'facebook': {
        'METHOD': 'oauth2',
        'SDK_URL': '//connect.facebook.net/{locale}/sdk.js',
        'SCOPE': ['email', 'public_profile'],
        'AUTH_PARAMS': {'auth_type': 'reauthenticate'},
        'INIT_PARAMS': {'cookie': True},
        'FIELDS': [
            'id',
            'email',
            'first_name',
            'last_name',
            'middle_name',
            'name',
            'name_format',
            'picture',
        ],
        'EXCHANGE_TOKEN': True,
        'LOCALE_FUNC': lambda request: 'en_US',
        'VERIFIED_EMAIL': False,
        'VERSION': 'v7.0',
        'APP': {
            'client_id': env.str('FACEBOOK_CLIENT_ID', ''),
            'secret': env.str("FACEBOOK_SECRET", '')
        }

    },

    'google': {
        'SCOPE': [
            'profile',
            'email',
        ],
        'AUTH_PARAMS': {
            'access_type': 'online',
        },
        'APP': {
            'client_id': env.str('GOOGLE_CLIENT_ID', ''),
            'secret': env.str("GOOGLE_SECRET", '')

        }
    },
    "apple": {
        "APP": {
            "client_id": env.str('APPLE_CLIENT_ID', ''),
            "secret": os.environ.get('APPLE_KEY_ID', ''),
            "key": os.environ.get('APPLE_KEY_ID', ''),
            "certificate": SOCIAL_AUTH_APPLE_PRIVATE_KEY,
        },
    }

}
SOCIAL_AUTH_PIPELINE = (
    'social_core.pipeline.social_auth.social_details',
    'social_core.pipeline.social_auth.social_uid',
    'social_core.pipeline.social_auth.auth_allowed',
    'social_core.pipeline.social_auth.social_user',
    'social_core.pipeline.user.get_username',
    'social_core.pipeline.user.create_user',

    'home.pipeline.handle_social_auth',

    'social_core.pipeline.social_auth.associate_user',
    'social_core.pipeline.social_auth.load_extra_data',
    'social_core.pipeline.user.user_details',
)


#pipeline.py
from django.conf import settings
from django.shortcuts import redirect
import django
from icecream import ic
from users.models import User

django.setup()


def handle_social_auth(backend, user, response, *args, **kwargs):
    user.is_email_verified = True
    user.save()
    print('it is working..................................')
Вернуться на верх