Django密码更改

时间:2016-03-22 15:25:03

标签: python django python-2.7

为什么以下代码会导致我的用户在输入新的有效密码时被注销?

mSectionsPagerAdapter.addFragment(PlaceholderFragment.newInstance(0));
mSectionsPagerAdapter.setAdapter(mSectionsPagerAdapter);

2 个答案:

答案 0 :(得分:3)

它是由Django实施的安全措施,并且在默认配置中启用 - 只要用户更改其密码,所有现有会话都将失效。见https://docs.djangoproject.com/en/1.9/topics/auth/default/#session-invalidation-on-password-change

您需要在pass_form.save()之后将以下内容添加到视图中,以保持当前会话有效:

update_session_auth_hash(request, pass_form.user)

答案 1 :(得分:2)

Django invalidates sessions when the password is changed。您需要致电update_session_auth_hash以防止此情况发生。

请注意,您不必编写自己的change_password方法。 Django附带了password_change方法,负责为您更新会话。