🔑 OAuth:像5岁小孩一样解释
发布: (2026年1月1日 GMT+8 06:23)
2 min read
原文: Dev.to
Source: Dev.to
代客钥匙类比
你去一家高档餐厅,不想自己找停车位。
代客停车员要你的车钥匙,但你担心他们会打开后备箱或偷走你的太阳镜。
解决方案:代客钥匙 – 一把特殊的钥匙,它:
- ✅ 能启动汽车
- ✅ 能把车开短距离
- ❌ 不能打开后备箱
- ❌ 不能打开手套箱
OAuth 对网站的工作方式也是如此。
为什么不直接分享密码?
错误做法: 给某个应用你的 Twitter 密码。
- 该应用可以读取你所有的私信。
- 它可以更改你的密码。
- 它可以代表你执行任何操作。
正确做法: 使用 OAuth。
- 应用向 Twitter 请求有限的访问权限。
- Twitter 向 你 询问:“允许此应用代表你发布吗?”
- 你回答 是。
- Twitter 返回一个特殊的 令牌,只能在你批准的权限范围内发布。
- 应用使用该令牌发布内容;它永远看不到你的密码。
OAuth 流程(简化版)
App → Twitter: "I need to post for this user"
Twitter → User: "Do you allow this?"
User → Twitter: "Yes, allow posting"
Twitter → App: "Here’s a limited token"
App → Twitter: (uses token to post)
关键要点
- OAuth 让应用在 有限权限 下访问你的账户。
- 它在不泄露密码的前提下提供 授权。
- “使用 Google 登录” 通常使用 OpenID Connect,它是基于 OAuth 构建的。