Как остановить python-social-auth и отменить транзакцию на этапе конвейера?
У меня есть приложение Django, которое использует python-social-auth для аутентификации.
У меня есть это в моих настройках Django:
SOCIAL_AUTH_PIPELINE = (
...
'my.app.my.custom.pipeline',
)
Как мне остановить весь процесс создания пользователя в моем пользовательском конвейере?
Я пытался бросать различные исключения, в том числе ValueError
а также AuthException
но созданные пользователи остаются в базе данных. Разве исключение не отменяет транзакцию базы данных?
0 ответов
Определите представление в одном из ваших приложений Django и не забудьте зарегистрировать для него путь:
def access_denied(request):
return HttpResponse("<h1>Access denied</h1>")
И затем, функция, зарегистрированная в вашем пользовательском конвейере, просто должна вернуть представление:
if not allowed_email(fields["email"]):
return redirect(access_denied)