为什么以下代码会导致我的用户在输入新的有效密码时被注销?
mSectionsPagerAdapter.addFragment(PlaceholderFragment.newInstance(0));
mSectionsPagerAdapter.setAdapter(mSectionsPagerAdapter);
答案 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
方法,负责为您更新会话。