iT邦幫忙

2025 iThome 鐵人賽

DAY 8
0
自我挑戰組

30 天用 Vibe Coding 打造多角色復健追蹤應用系列 第 8

Day 8 第二階段:核心 API 開發 (二) 用戶驗證與管理系統

  • 分享至 

  • xImage
  •  

🔑 JWT 認證系統

使用 JWT (JSON Web Token) 管理登入狀態與 API 存取:

  • 支援 Access TokenRefresh Token,並安全驗證簽發者與到期時間。
  • 提供 Token 續期 功能,使用者可透過 /refresh 取得新的 Access Token。
  • 內建錯誤處理,避免過期或無效 Token 造成系統崩潰。

🔒 密碼安全

密碼以 bcrypt 進行雜湊,確保資料庫不儲存明文密碼:

  • 密碼強度檢查與安全比對 (time-safe comparison)。
  • 支援忘記密碼與安全的重設流程。

🧩 認證服務與中介層

所有認證邏輯集中於 AuthService

  • 註冊、登入、修改密碼、重設密碼與個人資料管理。
  • Email 驗證與帳號停用。
  • 中介層可驗證 Token、檢查角色權限,並確認資源擁有權,避免跨帳號存取。

⚡ API 路由一覽

方法 路徑 功能 權限
POST /api/auth/register 註冊新使用者 Public
POST /api/auth/login 使用者登入 Public
POST /api/auth/refresh 刷新 Token Public
GET /api/auth/me 取得目前使用者資訊 Private
PUT /api/auth/profile 更新個人資料 Private
POST /api/auth/change-password 修改密碼 Private
POST /api/auth/forgot-password 發送重設密碼連結 Public
POST /api/auth/reset-password 使用 Token 重設密碼 Public
POST /api/auth/verify-email 驗證電子信箱 Private
POST /api/auth/deactivate 停用帳號 Private
GET /api/auth/check-token 驗證 Token 是否有效 Public

🔐 安全特點

  • bcrypt 密碼雜湊與安全驗證。
  • JWT 簽章檢查與有效期控管。
  • 角色基礎存取控制 (RBAC),確保病人資料僅供授權角色查看。

💡 今日總結

Day 8 完成了完整的使用者認證系統:

  • 從註冊、登入到密碼重設與 Email 驗證皆已具備。
  • 透過角色權限與 Token 管理,確保資料安全並提供後續病歷與復健紀錄功能的基礎。

專案Github Repo : https://github.com/CHING-WENLAI1031/Rehab_Tracker


上一篇
Day 7 第二階段:核心 API 開發 (ㄧ)資料庫Schema-2
系列文
30 天用 Vibe Coding 打造多角色復健追蹤應用8
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言