【发布时间】:2019-08-30 01:40:06
【问题描述】:
我制作了一个应用程序并扩展了AbstractUser 以将一些字段添加到我的User 模型中。之后,一切都按预期工作(登录,创建用户,重置密码......)但是当我尝试使用默认注销时
django.contrib.auth.LogoutView 或 include('django.contrib.auth.urls')
它只会忽略注销。当我返回受限页面时,我可以进入并查看内容,并且我的用户实际上已登录!
我创建了一个这样的自定义注销视图
def custom_logout(request):
print('Loggin out {}'.format(request.user))
auth.logout(request)
print(request.user)
return HttpResponseRedirect('/restrictedpage')
在受限页面上,我有一个打印语句向用户展示
print("User logged: {}".format(request.user))
当我单击注销时,控制台中会显示以下内容:
"GET /restrictedpage HTTP/1.1" 200 19820
User logged: ceterre
----- This is where i click logout ------
Loggin out AnonymousUser
AnonymousUser
"GET /accounts/logout/ HTTP/1.1" 302 0 ----- this redirects me to /restrictedpage
User logged: ceterre
"GET /restrictedpage HTTP/1.1" 200 19820
这个字面意思是:
- I know ceterre is logged
- logging out ceterre
- user logged: AnonymousUser
- redirect to restricted page (where I should have no access since im supposedly logged out)
- user logged: ceterre (without any login or anything...)
【问题讨论】:
标签: python django django-authentication