일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- djangoprogramming
- 사용자입력
- 맥북 터미널 명령어
- mdn
- CLI 명령어
- let const var 차이
- 알고리즘
- 웹프로그래밍
- 트리 시간복잡도
- 자바스크립트
- js입력받기
- Django
- let const 차이
- 입력받기
- linked list 현실 사례
- doubly linked list
- django로그인
- singly linked list
- javascript
- 자료구조
- 시간복잡도
- djangoframework
- 장고
- 배열 사례
- python
- 웹개발
- 배열이란
- 리눅스 기초 명령어
- js
- 배열 예시
- Today
- Total
용기러기's Coding World
Yongki's Do it Django(5) - 비밀번호 변경 기능 구현하기 본문
안녕하세요 :)
오늘은 로그인한 유저가 비밀번호를 변경할 수 있도록 해보겠습니다
간략하게 오늘의 과정을 살펴보면,
일단, 저희는 비밀번호를 User테이블에 모아 두고는 있지만,
앞에 회원가입 기능을 만들 때 봤듯이 운영자도 클라이언트들의 비밀번호를 이렇게 암호화한 상태로 밖에 볼 수 없음을 기억하시나요??
그렇다면, 이 비밀번호를 클라이언트가 원하는 새로운 비밀번호로 바꾸려면 어떻게 할까요?
기존의 모델의 객체의 인수를 바꾸는 것은 그렇게 어렵지 않았는데 말이죠.
예를 들어, 기존 객체의 인수를 바꾸려면
selected_object=models.exampleModel.objects.get(id=특정 객체의 아이디 값)
이렇게 변경을 원하는 객체를 받아온 다음에 예를 들어, name 필드를 바꾸고 싶다면?
selected_object.name="변경을 원하는 값"
해주면 됐습니다.
그러나, user의 비밀번호를 설정할 때는 다른 방법이 필요합니다 :)
바로 set_password 를 이용하는 방법인데요
어떻게 사용하는지 본격적으로 알아보겠습니다 :)
일단 저는 account링크를 누르면
다음과 같은 화면으로 이어지도록 했는데요(허접한 디자인 이해해주세요..;)
저렇게 비밀번호 쪽에만 input을 받도록 해봤습니다.
바꾸고자 하는 비밀번호를 입력하고 변경을 누르면 말 그대로 변경! 되는 것이죠.
그럼 저 뒤에는 어떤 설계가 되어있는지 백엔드 쪽을 살펴보도록 할게요
저는 changePassword의 약자로 chPsw라는 함수를 만들었는데요(제 맘입니다.. 그렇다고요..ㅎㅎ).
여기서는 순서대로
현재 로그인 정보 주머니(Cookie를 말하는 것이라고 앞 챕터에서 말씀드렸습니다)에 담긴
유저 객체를 먼저 user라는 변수에 할당해줬습니다.
그다음에 변경할 비밀번호 input으로 받은 값을(form method="POST"로 받은)
new_password라는 변수에 할당해줬습니다.
그 다음에 앞에서 말한
set_password()를 이용해서 user.set_password(new_password) 라고 코딩을 했고, 그에 따라
제가 가져온 객체의 비밀번호가 제가 원하던 것으로 바뀌었습니다.
그러면 이제, 저장을 해주고 끝난 것처럼 보입니다.
그러나, 이때, 바꾼 정보가 비밀번호가 아니라 예를 들어, 이메일이라 했을 때
쿠키 정보를 바꿔야 할 필요가 있습니다.
뭔 말인가 하면, 저희는 비밀번호를 바꾸고 저장을 했지만,
쿠키 속에 담긴 저희들의 비밀번호는 여전히 변경 이전의 비밀번호입니다.
이때, 이전의 비밀번호를 가진 쿠키라도 로그인 상태는 유지가 되지만,
만약 그 쿠키 속 정보가 비밀번호가 아닌 실시간으로 계속 사용하는 정보라고 했을 때,
예를 들어, 롤(?)에서 티어가 변경돼서 티어를 변경했는데, 쿠키 속 롤 티어는 여전히 브론즈(?)라고 해보면...
그만큼 슬픈 일이 없습니다(이상한 비유 죄송합니다;)
그렇기에 만약 필요하다고 생각이 된다면 쿠키를 다시 만들어줄 필요가 있습니다:)
그래서 뒷부분에 쿠키를 다시 setting 해줬습니다
그럼 이렇게 로그아웃 기능까지 살펴봤는데요, 1,2,3,4,5 편까지 오면서 짤막하게 봤지만,
회원가입-> 로그인(+로그인 상태 유지)-> 비밀번호 변경 -> 로그아웃 까지 살펴볼 수 있었습니다.
다음 챕터에서는 로그인 field들을 커스텀해서 나만의 User모델을 만들어보도록 하겠습니다 :)
여태까지 고생하셨습니다 :)
'용기러기's Django' 카테고리의 다른 글
Yongki's Do it Django(4) - 로그아웃 기능 구현하기 (0) | 2020.04.13 |
---|---|
Yongki's Do it Django(3) - 로그인 상태 유지하기 (0) | 2020.04.12 |
Yongki's Do it Django(2) - 로그인 기능 구현하기 (0) | 2020.04.12 |
Yongki's Do it Django(1) - 회원가입 기능 만들기 (0) | 2020.04.12 |