我正在为项目使用django 1.8,并且尝试django.contrib.auth.middleware.SessionAuthenticationMiddleware
在重置密码后尝试在中间件中注销其他会话。很好,但是我面临的问题是重置后甚至注销了更改密码的会话。我希望在重置密码后,我们更改密码的会话不会注销。我们的user
模型继承自AbstractUser
如果您使用自己的视图来更改密码,则django使您能够在更改密码后更新会话,以便不注销用户。
为此,您可以使用update_session_auth_hash
功能。
user_change_password
更改密码后,Django会更新会话。但是对于您自己的自定义视图,可以这样使用update_session_auth_hash
:
from django.contrib.auth import update_session_auth_hash
def password_change(request):
if request.method == 'POST':
form = PasswordChangeForm(user=request.user, data=request.POST)
if form.is_valid():
form.save()
update_session_auth_hash(request, form.user)
else:
...
关于密码更改会话无效的Django文档
您无需使用所有方法,django-allauth
而可以使用。这是一个很棒的应用程序,并且具有各种身份验证功能。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句