OAuth 是一種「授權」機制,讓使用者可以允許某個應用程式存取自己的部分資料,而不需要把帳號密碼直接交給這個應用程式。
最常見的例子是:
使用者在你的網站按下「使用 Google 登入」
Google 確認使用者身份
使用者同意授權
你的網站取得一個 token
你的網站就可以知道使用者是誰,或在授權範圍內存取資料
OAuth 的重點不是「把帳號密碼存進你的系統」,而是透過第三方服務,例如 Google、GitHub、Facebook,來完成授權流程。
假設有一個 Note App 想要讓使用者用 Google 帳號登入。
比較不好的做法是:
使用者把 Google 帳號密碼輸入到你的 Note App
Note App 再拿這組帳密去登入 Google
這樣非常危險,因為你的系統會直接接觸使用者的 Google 密碼。
OAuth 的做法是:
使用者被導向 Google
使用者在 Google 官方頁面登入
Google 確認完成後,把授權結果交給你的 App
你的 App 不會碰到使用者的 Google 密碼
這樣可以降低風險,也讓使用者可以控制授權範圍。
OAuth 流程中通常有幾個角色:
資源擁有者,也就是使用者本人。
例如:使用 Google 帳號登入 Note App 的那個使用者。