1. Edit Password Template
- 비밀번호 변경은 계정정보를 설정하는 곳에서 따로 진행
- 비밀번호를 변경할 template을 만들고 userRouter에 route 만들고 controller에서 get post함수를 만들어서 import 시켜야 함
- 로그인 된 상태인 유저만 접근해야하니 protectorMiddleware를 사용
- 이제 슬슬 views 폴더에 파일이 많아지므로 다른 폴더들처럼 정리를 하는게 좋고 그에 맞게 각 파일마다 경로를 수정해야함
- 암호를 수정하는 것은 홈페이지에서 회원가입만 user만 해당되며, 소셜로그인이 된 user라면 change password 버튼이 보이지 않아야함
- 소셜로그인 user는 비밀번호 없이 가입했기 때문
- 첫번째 방법과는 다르게, form을 볼 수는 있지만 사용할 수 없게 할 수도 있음
- 늘 그렇듯 locals는 template 어디서든 사용가능하다는 걸 기억해야함
2. Edit Password
- 첫번째로 새 비밀번호가 맞는지 확인
- 새 비밀번호가 틀리면 errorMessage는 잘 출력되나 역시나 브라우저는 비밀번호가 잘 변경된줄 알고 있음
- status code를 변경해야 함
- 두번째로 bcrypt를 사용하여 기존 비밀번호가 맞는지 확인
- 기존 비밀번호도 맞고 변경할 비밀번호도 모두 맞다면 이제 update 해야함
- 여기서 문제는 기존에 비밀번호를 저장했던 과정을 떠올려봐야함
- User Model에는 비밀번호를 보내면 hashing 해주던 함수가 있음
- 이 함수를 작동시키려면 두가지를 해야 하는데, pre save middleware를 거치고 User.create이 사용되야 함
- save()를 써야하므로 session에서 로그인된 user를 찾아야함
- 비밀번호를 바꾸게 되면 로그아웃 되는게 좋음
- 영상에선 비밀번호를 변경했고 그 비밀번호로 로그인했는데 안됨
- 기존 비밀번호를 session에 있는 비밀번호와 비교해서 그렇다고함
- session을 update 해 주지 않아 그렇다고함
'개발 > Node.js' 카테고리의 다른 글
Upload Video (0) | 2024.11.14 |
---|---|
File Upload (0) | 2024.11.13 |
Edit Profile / Protector and Public Middleware (0) | 2024.11.13 |
Github Login Recap again again (0) | 2024.11.13 |
Github Login / Logout (0) | 2024.11.13 |