作業功能擴充:為老爸的私房錢新增「重設密碼」之功能

總結

使用套件jsonwebtokennodemailer老爸的私房錢(簡易記帳 APP)實作重設密碼之功能 密碼重設流程大方向如下:

  1. 使用者點選「忘記密碼」
  2. 請使用者輸入當初註冊的 Email,若有效,則發出一封包含「重設密碼連結」的 Email 給該信箱
  3. 使用者收信、點選重設密碼連結後,該連結導向 APP 的重設密碼路由
  4. 使用者更新密碼,更新成功後,跳轉回 APP 登入路由,使用者可使用新密碼登入 APP

環境

express: 4.17.1
jsonwebtoken: 8.5.1
nodemailer: 6.6.2
os: Windows_NT 10.0.18363 win32 x64

注意事項

實作

  1. 向 DB 查詢使用者輸入的 Email 是否為已經註冊過的 Email,若已註冊,則使用jsonwebtoken將該使用者的 Email 與 hash-password encode 為一組金鑰
  2. 搭配nodemailer發送一封包含重設密碼 URL 的信件給該使用者,URL 中包含步驟一產生的金鑰
  1. 使用者點選信件中的重設密碼 URL 後,後端檢驗該 request 夾帶的金鑰內容
  1. 若以上檢驗皆無問題,則讓使用者重設密碼;密碼重設後將使用者引導回登入頁面,並提示使用者密碼已更新成功

原始碼

參考文件