安全
OAuth
/ OH-auth /
OAuth 是每一個「用 Google 登入」或「用 GitHub 繼續」按鈕背後的標準。它的全部意義在於:讓一個應用借用另一個應用,卻永遠看不到你的密碼。你並不是把 Google 帳號交給那個新應用——你是在請 Google 代表你把它放進來。
最貼切的日常類比是飯店房卡。櫃檯(Google)只查一次你的證件,然後給那個應用一張卡,這張卡只能打開幾扇特定的門——比如你的電子郵件地址和姓名——別的都打不開。應用永遠拿不到你的總鑰匙,而你隨時可以註銷這張卡,根本不用改你真正的密碼。
應用拿到的,是一個存取權杖(access token):一張臨時、受限的通行證。這就是值得記住的區別——OAuth 關乎的是「授予有限的存取權」,而不是「證明你是誰」。密碼始終留在你和你信任的那個服務那裡。
App → Google: "let this user share their email with me?" User clicks "Allow" Google → App: access token (email only, no password)
OAuth 三步走:應用提出請求,你點同意,它拿到一個受限權杖——絕不會碰到你的密碼。
OAuth 本是為授權(一個應用能存取什麼)而設計的,並非為身分。你看到的那個「登入」其實是 OpenID Connect——在 OAuth 之上加的一層薄薄的封裝。
又稱
另見