軟體工程師職涯升級計畫啟動!立即預約職涯諮詢、履歷健檢或模擬面試👈,為您的加薪做好準備!
在現代 Web 開發中,「安全的 API 認證機制」是架構設計不可忽視的一環。無論是登入機制、跨系統授權,或是前後端分離架構下的資料保護,了解各種 API 認證方式的特性,將大幅提升系統的安全性與可擴展性。
本篇文章將帶你深入認識三種主流的 API 認證方法:
- Cookie-based 認證
- JWT (JSON Web Token)
- OAuth 2.0(第三方授權標準)
🔐 Cookie 認證:傳統但仍實用的方式
HTTP 是一個無狀態協定(stateless),也就是每次請求都是獨立的、不會記得你是誰。因此,我們需要額外手段來「記住」使用者的登入狀態。✅ Cookie-based 認證流程
以下是典型的 Cookie 登入流程:
- 使用者輸入帳號密碼,發送登入請求
- Server 驗證成功後,透過
Set-Cookie指令,將一組 Session ID 寫入瀏覽器 Cookie - 之後每次發送 API 請求,瀏覽器都會自動附帶該 Cookie
- Server 根據 Cookie 查找對應 Session 判斷是否為合法使用者

🍪 Cookie 優點
- 自動處理:瀏覽器會自動附帶 Cookie,不需額外程式處理
- 適用於傳統 MVC 網站架構(如 Ruby on Rails、Django)
⚠️ Cookie 缺點
- 容易受到 CSRF(跨站請求偽造) 攻擊
- 搭配前後端分離架構較不直覺,需特別處理跨域與 Credential 權限
🔍 延伸閱讀:Session 與 Cookie 的差別
🔑 JWT 認證:Stateless 的現代解法
JWT(JSON Web Token)是目前 RESTful 架構中最常見的認證方式之一。它遵循無狀態設計原則,不需要 Server 保持任何 Session 狀態,認證資訊全都保存在 Token 本身。

🧩 JWT 的組成結構
JWT 是一段由三部分組成的字串,以 . 分隔:
xxxxx.yyyyy.zzzzz
- Header:指定加密演算法(如 HS256)
- Payload:實際的資料(如 userId、role)
- Signature:用 Secret Key 對前兩部分加密簽章,防止篡改
🧪 範例 Payload
json
複製編輯{
"sub": "1234567890",
"name": "Gary Huang",
"admin": true,
"exp": 1712345678
}
🔁 認證流程(Token-based Authentication)
- 使用者登入,Server 驗證後產生 JWT 並回傳
- 客戶端儲存 JWT(通常放在 localStorage 或 sessionStorage)
- 每次 API 請求,在
Authorization標頭夾帶Bearer <token> - Server 驗證 Token 是否有效,並決定是否授權存取資源
✅ JWT 優點
- 適用於 SPA 與前後端分離架構
- 無需 Session 管理,減輕 Server 負擔
- 可攜帶使用者資訊(claims)
⚠️ JWT 缺點
- 無法主動註銷(除非實作黑名單機制)
- Token 洩漏後,風險極高(尤其存在 localStorage)
- 複雜的查詢會帶來效能壓力
🔍 延伸閱讀:JWT 官方網站
🌐 OAuth 2.0:第三方授權的業界標準
OAuth(Open Authorization)是當代「安全授權」的代表,讓使用者可以授權第三方服務存取部分資訊,而無需分享自己的帳號密碼。
這種認證方式你肯定用過:
🧑💼 使用 Google、Facebook、GitHub 一鍵登入網站!
🔐 OAuth 解決了什麼問題?
過去我們常將帳密直接給其他平台,這非常危險,OAuth 則改為發放一個「可控範圍與期限的 Access Token」,授權後端讀取部分資訊(如 Email、姓名),大幅降低風險。
🔄 授權流程(簡化版本)
- 第三方應用導向授權伺服器(如 Google 登入頁)
- 使用者登入並授權該應用
- 授權伺服器回傳一個臨時 Code
- 第三方應用使用該 Code 換取 Access Token
- 使用 Access Token 存取資源伺服器(Resource Server)
✅ OAuth 優點
- 使用者資訊由授權伺服器(如 Google)管理,安全有保障
- 可控制授權範圍(Scope)與有效期限
- 支援多平台登入整合,提升 UX
⚠️ OAuth 缺點
- 實作複雜,流程繁瑣(建議使用套件如 Passport.js)
- 需信任第三方平台的安全性
- 僅適合需要「第三方授權」的應用場景
🔍 延伸閱讀:OAuth 2.0 RFC 6750
🚀 小結:三種方式怎麼選?

如果你在建構現代化 Web 系統,建議了解以上三種方式,根據需求選擇最適合的實作方式,或是結合使用(例如 OAuth + JWT),達到兼具使用者體驗與資安考量的理想平衡。
下一篇我們將探討 API 開發中重要的「Proxy 架構與 HTTP 快取策略」,記得訂閱或追蹤,不錯過實戰精華!
📩 喜歡這篇內容嗎?歡迎分享給你的工程師朋友,或在留言區說說你偏好的認證方式吧!









