開發與網路
OAuth 是什麼?把鑰匙交給管家,而不是把家裡鑰匙交出去
OAuth 是什麼?把鑰匙交給管家,而不是把家裡鑰匙交出去
你一定按過「使用 Google 登入」。那一瞬間發生的事情就是 OAuth:你把「讀取某些資料」的權限給了對方,但你的密碼從頭到尾沒有離開 Google。
串接自動化工具的時候,你會一直遇到它。搞懂 OAuth 是什麼、什麼時候該用,才不會用錯工具。
你將學到什麼
定義
一種授權機制,讓第三方應用在拿不到你密碼的情況下取得存取權限。
白話比喻
把鑰匙交給管家,而不是把家裡的鑰匙整串交出去。
四個好處
不必分享密碼、可隨時撤銷、可限定範圍、業界標準廣泛支援。
跟誰容易搞混
常跟認證搞混。OAuth 管的是「你能做什麼」,不是「你是誰」。
定義
OAuth 是開放授權,一種「授權機制」而不是「認證機制」。它讓第三方應用在不取得你帳號密碼的情況下,獲得存取你資源的權限。
重點在那個「不取得密碼」。應用拿到的是一張權杖,不是你的密碼,兩者的風險等級差很遠。
白話比喻
把鑰匙交給管家,而不是把家裡鑰匙交出去。管家只能開他被允許開的那幾扇門,而且你隨時可以把那把鑰匙收回來。
傳統帳密登入是另一回事:你把整串鑰匙給對方,收不收得回來要看對方的良心。
授權碼流程走六步
- 發起請求:你在應用裡點「使用 Google 登入」。
- 導向授權:應用把你送到 Google 的登入頁。
- 使用者授權:你登入並同意授權範圍,例如讀取檔案。
- 回傳授權碼:Google 把你導回應用,網址後面附上授權碼。
- 交換權杖:應用的後端拿授權碼向 Google 換存取權杖。
- 存取資源:應用帶著權杖去資源伺服器拿資料。
前四步是你在瀏覽器裡看得到的,後兩步是伺服器之間的通訊。你的密碼只出現在 Google 自己的頁面上。
OAuth 跟傳統帳密登入差在哪?
| 項目 | OAuth 授權 | 傳統帳密登入 |
|---|---|---|
| 是否需要密碼 | 不需要 | 需要 |
| 安全性 | 高,不暴露密碼 | 較低,密碼可能外洩 |
| 可控性 | 可撤銷、可管理權限 | 難以撤銷 |
| 權限粒度 | 可精細設定 Scopes | 通常是全部存取 |
| 適用場景 | 第三方整合、API 存取 | 自有系統內部登入 |
實際用例
常見的四種:用 Google 或 Facebook 登入網站、讀取雲端硬碟檔案、串接寄信與行事曆、企業內部系統整合的權限委派。
做自動化時的判斷很單純:有使用者要點同意就用 OAuth,無人值守的排程就別用。細節可以看 AI 自動化實作檢查清單。
最常見的誤解是把 OAuth 當成登入功能。它的本體是授權,回答的是「這個應用可以動我哪些資料」;至於「你是誰」,是另一層的事。
第二個誤解是授權範圍勾越多越方便。實務上相反:範圍越大,被盜用時的損失越大。只給完成這件事需要的最小權限。
延伸學習
ChatGPT 很強,但真正讓你下班的是 Google
六小時完整實錄。從「AI 很厲害,為什麼你還是每天加班」這個問題出發,把 Google Workspace 當成真正的工作平台重新設計一次流程 ── Sheets 的資料結構、Drive 與 Docs 的文件流、Gmail 與 Calendar 的通知系統,再用 Apps Script 讓它自己跑起來,最後收斂成一張屬於你自己的 AI 工作能力地圖。
NT$ 4,599
寫給升國一的你的筆記術
寫給剛升上國中的你:筆記不是寫給老師看的,是寫給考前的自己看的。18 章 85 課圖文,從「為什麼要寫」講到七科各自怎麼記,附 78 份可以印出來寫的練習單,以及 80 課家長專區與 34 張三年筆記養成路徑圖。沒有閱讀期限,國一買、國三還在。
NT$ 3,599

