什么是 OAuth?

OAuth(开放授权)是一种开放标准授权协议,允许用户授予第三方应用程序有限访问其资源的权限,而无需共享其凭据。它通过访问令牌实现安全的委托访问。

快速了解

全称开放授权
创建时间2007 年(OAuth 1.0),2012 年(OAuth 2.0 RFC 6749)
规范文档官方规范

OAuth 工作原理

OAuth 通过在资源所有者批准后向第三方客户端发放访问令牌来工作。最常见的流程(授权码模式)涉及将用户重定向到授权服务器,用户在那里进行身份验证并批准访问。然后服务器返回授权码,该授权码被交换为访问令牌。OAuth 2.0 是当前版本,被 Google、Facebook、GitHub 和其他主要平台广泛用于 API 访问和社交登录。

主要特点

  • 基于令牌的授权(不是认证)
  • 支持多种授权类型(授权码、客户端凭据等)
  • 作用域定义授予的访问级别
  • 刷新令牌用于获取新的访问令牌
  • 角色分离:资源所有者、客户端、授权服务器、资源服务器
  • 安全性要求使用 HTTPS

常见用途

  1. 社交登录(使用 Google/Facebook/GitHub 登录)
  2. 第三方 API 访问
  3. 移动应用认证
  4. 微服务授权
  5. 单点登录(SSO)实现

示例

OAuth 2.0 授权码流程:

1. 用户点击「使用 GitHub 登录」
2. 重定向到:https://github.com/login/oauth/authorize
   ?client_id=YOUR_CLIENT_ID
   &redirect_uri=https://yourapp.com/callback
   &scope=user:email

3. 用户批准访问
4. GitHub 重定向到:https://yourapp.com/callback?code=AUTH_CODE
5. 用授权码交换访问令牌
6. 使用令牌访问 GitHub API

QubitTool 相关工具

相关概念