🔑 OAuth:像5岁小孩一样解释

发布: (2026年1月1日 GMT+8 06:23)
2 min read
原文: Dev.to

Source: Dev.to

代客钥匙类比

你去一家高档餐厅,不想自己找停车位。
代客停车员要你的车钥匙,但你担心他们会打开后备箱或偷走你的太阳镜。

解决方案:代客钥匙 – 一把特殊的钥匙,它:

  • ✅ 能启动汽车
  • ✅ 能把车开短距离
  • ❌ 不能打开后备箱
  • ❌ 不能打开手套箱

OAuth 对网站的工作方式也是如此。

为什么不直接分享密码?

错误做法: 给某个应用你的 Twitter 密码。

  • 该应用可以读取你所有的私信。
  • 它可以更改你的密码。
  • 它可以代表你执行任何操作。

正确做法: 使用 OAuth。

  1. 应用向 Twitter 请求有限的访问权限。
  2. Twitter 向 询问:“允许此应用代表你发布吗?”
  3. 你回答
  4. Twitter 返回一个特殊的 令牌,只能在你批准的权限范围内发布。
  5. 应用使用该令牌发布内容;它永远看不到你的密码。

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 构建的。
Back to Blog

相关文章

阅读更多 »

了解 JSON Web Token (JWT)

在创建 Web 应用程序的某个时刻,我们需要为系统开发一个认证解决方案。有多种策略可以实现,例如 aute...

Academic Suite 身份验证与授权

3.1 Academic Suite 中的身份验证方法 Academic Suite 使用基于 JSON Web Token(JWT)的无状态身份验证方法。不同于基于会话的身份验证…