Django 사용자 패스워드 변경하기

사용자들은 자신의 프로필에서 언제든지 비밀번호를 변경 할 수 있어야 한다.
물론 자신의 계정이 아닌 계정의 패스워드를 마음대로 변경하는 일은 없어야 하므로,
자신의 계정이 아닌 계정의 프로필에서는 패스워드 변경 기능을 사용하지 않도록 한다


패스워드 변경 뷰를 다음과 같이 작성한다.
장고에서 기본으로 제공하는 PasswordChangeForm을 사용하도록 한다.
새로운 비밀번호를 입력받아 변경하는 post부분에서 중요한 부분은
update_session_auth_hash 부분이다.

장고는 유저의 비밀번호를 해시 암호화 해서 보관하게 되어있는데,
비밀번호가 변경 되었으니 그 해시값을 업데이트 해주는 부분이다.
이 부분을 진행하지 않으면 비밀번호가 바뀐 유저가 로그인을 할 수 없게되니 필수로 해줘야 한다.

그러고 성공 / 실패는 메시지를 통해서 화면에 출력해주도록 한다.






템플릿에서 다음과 같이 사용한다. 혹은





다음과 같이 직접 인자들만 알맞게 설정해서 직접 적어줘도 된다.

댓글