開發與網路
Bearer Token 持有人權杖是什麼?誰拿到誰就進得去
Bearer Token(持有人權杖)是一段代表授權的長字串,Bearer 就是持有者的意思。伺服器不關心你是誰,只要你「持有」有效的權杖,就允許存取對應的資源或 API。它通常放在 HTTP 請求的 Authorization 欄位傳遞,格式多為 JWT,並且會設定有效期限,過期就要重新取得。
Bearer Token 持有人權杖是什麼?誰拿到誰就進得去
串接 API 的時候,你會看到一行 Authorization 開頭的設定,後面接著一長串看不懂的字。那就是持有人權杖。
它的規則簡單到有點可怕:誰拿到,誰就有權限。所以怎麼保管,比怎麼取得更重要。
你將學到什麼
定義
持有人權杖是一段代表授權的長字串,伺服器只驗證你有沒有這個權杖,不驗證你是誰。
白話比喻
像對警衛說「我是拿到令牌的人」。警衛只看令牌有沒有效,不會問你的身分證。
跟誰容易搞混
應用程式金鑰通常長期有效、代表整個應用;持有人權杖多為短效,代表一次授權。
定義
Bearer Token(持有人權杖)是一段代表授權的憑證。Bearer 就是持有者的意思,伺服器不關心你是誰,只要你持有有效的權杖,就允許存取對應的資源。
它的三個特點是:不需要每次輸入帳號密碼、容易在 HTTP 標頭中傳遞、輕量而且被廣泛使用。
白話比喻
就像對門口的警衛說一句:「我是拿到令牌的人,放我進去。」警衛只確認令牌有沒有效,不會多問你的身分。
方便的地方在這裡,危險的地方也在這裡。令牌掉了,撿到的人就是你。
在請求裡長什麼樣
GET /v1/user/profile HTTP/1.1
Host: api.example.com
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6...
Content-Type: application/json
伺服器收到後會驗證權杖是否有效。有效就允許存取,無效就回傳 401 或 403 拒絕。
權杖的特性
| 項目 | 說明 |
|---|---|
| 類型 | 通常是 JWT(JSON Web Token)或不透明字串 |
| 格式 | 一段長字串,外觀類似 Base64 |
| 傳遞方式 | 放在 HTTP 標頭的 Authorization 欄位中 |
| 授權方式 | 伺服器只驗證「你有這個權杖」 |
| 有效期限 | 有期限,過期需重新取得 |
| 撤銷性 | 一般較難即時作廢,需搭配短效權杖或 Refresh Token |
實際用例
你在呼叫模型 API、存取 Google API、串接企業內部系統、做行動 App 的身分驗證,或整合第三方服務時,幾乎都會遇到它。
以 OAuth 2.0 為例,流程是五步:使用者登入並授權、應用程式取得存取權杖、帶著權杖發送請求、伺服器驗證權杖、驗證成功後回傳受保護的資源。
安全注意事項
- 不要在前端程式碼、公開的儲存庫或公開文件中暴露權杖。
- 使用 HTTPS 傳輸,避免在傳輸途中被竊聽。
- 設定合理的過期時間,優先採用短效權杖。
- 搭配 Refresh Token 機制,安全地更新權限。
- 必要時加上 IP 限制、裝置綁定與權杖黑名單等機制。
把它想成一張通行證就好記了:安全地取得、妥善保存、正確使用,才能發揮它的威力。
常見誤解最常見的誤解是把權杖當成密碼在管理,卻放在不安全的地方。實務上的四條紅線是:不要在前端程式碼、公開儲存庫或公開文件中暴露權杖;一律使用 HTTPS 傳輸;設定合理的過期時間;搭配 Refresh Token 更新權限。另一個誤解是以為它能證明「你是誰」,它證明的只是「你手上有這個權杖」。想比較不同授權方式,可以看 API Key。
本文源起本文內容出自酒Ann 的「AI 實戰陪跑班」課程教材,由酒Ann 編寫成彙編條目。想系統性搞懂 AI 名詞,歡迎追蹤 酒Ann 的 Facebook。
延伸學習
常見問答
Bearer Token 跟 API Key 差在哪?
應用程式金鑰通常長期有效、代表整個應用或帳號,撤銷要靠人工重新產生。持有人權杖多半有短效期限、由授權流程動態發放,過期要用 Refresh Token 重新取得,安全性設計上更細緻。
權杖被別人拿到會怎樣?
對方就等同擁有你的權限,可以直接存取受保護的資源。這正是「持有人」三個字的意思。所以權杖不能出現在前端程式碼、公開的儲存庫或公開文件裡,傳輸也一定要走 HTTPS。
為什麼權杖會過期?
因為它一般較難即時作廢,所以用短效期限來降低外洩後的風險。搭配 Refresh Token 機制,就能在不打擾使用者的情況下安全地更新權限。必要時還可以加上 IP 限制、裝置綁定與黑名單。
