我有一个Django应用程序,它使用python-social-auth进行身份验证。
我在django设置中有这个:
SOCIAL_AUTH_PIPELINE = (
...
'my.app.my.custom.pipeline',
)
如何在自定义管道中停止整个用户创建过程?
我尝试过抛出各种异常,包括ValueError
和AuthException
,但创建的用户仍然在数据库中。不抛出异常反转数据库事务?
在你的一个Django应用程序中定义一个视图,不要忘记为它注册一个路径:
def access_denied(request):
return HttpResponse("<h1>Access denied</h1>")
然后,在自定义管道中注册的函数只需要返回视图:
if not allowed_email(fields["email"]):
return redirect(access_denied)