安全

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 之上加的一层薄薄的封装。

又称
log in with googlesocial logindelegated authorization