Страница входа в систему не отображается при использовании python-social-auth - PullRequest
0 голосов
/ 16 апреля 2019

Я использую social-app-django (часть python-social-auth) для реализации входа в Facebook для пользователей моего сайта Django.У меня есть требование, что пользователи должны быть найдены в локальной базе данных пользователей, прежде чем они смогут войти в систему с Facebook.Я заменил auth_allowed-часть конвейера аутентификации, чтобы выполнить эту проверку:

def auth_allowed(backend, details, response, *args, **kwargs):
    if not backend.auth_allowed(response, details) or not is_registered_user(response, details):
        raise AuthForbidden(backend)

, где is_registered_user() - это пользовательская функция, которая проверяет, существует ли пользователь локально.

Моя проблемаявляется то, что пользователи не перенаправляются на URL-адрес ошибки входа , если эта проверка завершается неудачно и выдается исключение AuthForbidden.Вместо этого сайт возвращает 500.

URL-адрес страницы ошибки настроен в файле settings.py следующим образом:

LOGIN_ERROR_URL = "/"

Я использую Django CMS, поэтому я также попытался реализовать промежуточное ПОкоторый перезаписывает SocialAuthExceptionMiddleware (который должен обрабатывать исключение AuthForbidden в стандартной настройке) для возврата CMS-страницы вместо URL-адреса из settings.py, но это промежуточное программное обеспечение не вызывается в процессе, насколько я могусм.

Есть идеи как это исправить?Мне не хватает какой-то конфигурации?

1 Ответ

1 голос
/ 17 апреля 2019

Я думаю, что решил проблему: я случайно использовал

social.apps.django_app.middleware.SocialAuthExceptionMiddleware

вместо

social_django.middleware.SocialAuthExceptionMiddleware

при обращении к промежуточному программному обеспечению обработки исключений.Скорее всего, эта ошибка возникла при обновлении с django-social-auth до python-social-auth / social-app-django некоторое время назад.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...