如何在管道步骤中停止python-social-auth并反转事务?

问题描述 投票:1回答:1

我有一个Django应用程序,它使用python-social-auth进行身份验证。

我在django设置中有这个:

SOCIAL_AUTH_PIPELINE = (
    ...
    'my.app.my.custom.pipeline',
)

如何在自定义管道中停止整个用户创建过程?

我尝试过抛出各种异常,包括ValueErrorAuthException,但创建的用户仍然在数据库中。不抛出异常反转数据库事务?

python django python-social-auth
1个回答
0
投票

在你的一个Django应用程序中定义一个视图,不要忘记为它注册一个路径:

def access_denied(request):
    return HttpResponse("<h1>Access denied</h1>")

然后,在自定义管道中注册的函数只需要返回视图:

if not allowed_email(fields["email"]):
    return redirect(access_denied)
© www.soinside.com 2019 - 2024. All rights reserved.