---
# System prepended metadata

title: Web 驗證中 Key 跟 Token 的區別
tags: [開發經驗分享]

---

# Web 驗證中 Key 跟 Token 的區別

## Key（金鑰）
API 提供者生成隨機字符串，有時也需要夾帶 client_id 協助驗證

#### Windows 金鑰
```
WSASS-WFEFE-YVC9B-4J6C9-87878
```

## Token（令牌）
登入後，獲得特定格式令牌，後續的請求中用來識別這個使用者身分與授權

#### JWT(JSON Web Token)
```
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
```
## 區別
|  | Key（金鑰）| Token（令牌） |
| -------- | -------- | -------- |
| 定義     | 辨識授權API呼叫者    | 辨識個體與授權     |
| 生成     | 手動生成過期    | 自動生成刷新    |
| 授權範圍     | 基於應用程式的固定授權    | 基於用戶的動態授權    |
| 安全性     | 長時效，不安全    | 短時效，安全  |
| 情境     | 開放資料存取、應用程式、流量控制   | 多因素認證、開放授權、使用者相關授權  |


## ref
[when-why-api-key?](https://cloud.google.com/endpoints/docs/openapi/when-why-api-key?hl=zh-cn)
[api-keys-vs-tokens](https://www.gomomento.com/blog/api-keys-vs-tokens-whats-the-difference)