--- tags: Node.js 直播班 - 2022 春季班 --- # 🏅 Day 32 ## 實作重設密碼 ### 題目(將答案寫在 HackMD 並提交至回報區) 實作重設密碼 API POST `/users/updatePassword` 流程大致上為: 接收 request body 的資料 → 驗證:密碼與確認密碼欄位值需為一致,可自行加上必填欄位、密碼需至少 8 碼以上,並包含英文與數字 ... 等等 → 使用 [bcryptjs](https://www.npmjs.com/package/bcryptjs) 將密碼進行 hash → 更新至資料庫 → [jsonwebtoken](https://github.com/auth0/node-jsonwebtoken) 產生 JWT 並回傳 user 資料及 token 回報流程 --- 請同學依照下圖教學觀看解答、回報答案: ![](https://i.imgur.com/QtL8zEW.png) 回報格式:請在「回報區」貼上 CodePen 或 HackMD 連結回報答案 (為了統計人數,請同學依序加上「報數」) <!-- 解答 參考範例 https://github.com/gonsakon/express-week4-sample/blob/week6/routes/users.js#L61-L73 ```javascript router.post('/updatePassword',isAuth,handleErrorAsync(async(req,res,next)=>{ const {password,confirmPassword } = req.body; if(password!== confirmPassword){ return next(appError("400","密碼不一致!",next)); } newPassword = await bcrypt.hash(password,12); const user = await User.findByIdAndUpdate(req.user.id,{ password:newPassword }); generateSendJWT(user,200,res) })) ``` --> 回報區 --- | 報數 | 組別 / 名字 | codepen / hackMD / 其他回饋 | | ---- | ----------------- | --------------------------------------------------------------------- | | 1 | 第3組 / Hobby | [HackMD](https://hackmd.io/@hobbyling/day32) | | 2 | 第3組 / hiYifang | [HackMD](https://hackmd.io/@gPeowpvtQX2Om6AmD-s3xw/BJlAbFdPc) | | 3 | 第 14 組|East | [HackMD](https://hackmd.io/27XG_tgWQMCvtvaJa7nP3Q) | | 4 | 第 4 組|苡安 | [HackMD](https://hackmd.io/CPW4DKRySt27tzugaFS9uQ) | | 4 | 第 2 組|joe | [HackMD](https://hackmd.io/uaRTw9c0TgOrADyXMmGL0Q?view#523-reset_pwd) | |5 |第 9 組 / konstante |[HackMD](https://hackmd.io/6g7cgCZYSBSf9w7kboPTOw?edit) | | 6 | 第 9 組 / 黃士桓 | [HackMD](https://hackmd.io/7BnbQN2-S2uZk_SITklDPA) | | 7 | 第 11 組 / Han Lai | [HackMD](https://hackmd.io/6bXnoAxcQ2Cl8Da_HsBTzA?view) | | 8 | 第 5 組 @ Hazel | [HackMD@Hazel](https://hackmd.io/@hazelwu/day32) | | 9 | 第 4 組 小宥| [HackMD](https://hackmd.io/@hazelwu/day32) | | 10 | 第 12 組 Jimmy| [HackMD](https://hackmd.io/Vl_GNIpeR_2jfR82xRfdNw) | | 11 | 第 2 組 wendy | [HackMD](https://hackmd.io/80FIwll1QUa4u0-WoBv-hQ#20220523)| | 12 | 第 16 組 / 皓皓 | [HackMD](https://hackmd.io/@cutecat8110/HyKp09R59)|