OAuth(开放授权)是一种开放的授权标准,让用户在不透露账号密码的前提下,授权第三方应用访问自己在某个平台上的资源,常见于「使用微信 / GitHub 账号登录」等场景,是现代互联网身份授权的基石。

| 类型 | 开放授权标准 / 网络协议 |
| 制定组织 | IETF 及开源社区 |
| 当前主流版本 | OAuth 2.0 |
| 典型用途 | 第三方登录、开放接口授权 |
| 官网 | oauth.net |
OAuth(开放授权,Open Authorization)是一种开放标准的授权协议,允许用户授权第三方应用在限定范围内访问自己存储在某个网站或服务上的资源,而无需把用户名和密码交给第三方。
在 OAuth 出现之前,如果一个应用想读取你在另一个网站上的数据(比如通讯录、相册),往往需要你直接把账号密码交给它,风险极大:对方可以获得账户的全部权限,你也无法单独撤销。OAuth 通过引入「令牌(Token)」机制解决了这个问题——用户在原平台上确认授权后,平台向第三方应用发放一个权限受限、可随时吊销的访问令牌,第三方凭令牌访问资源,全程接触不到密码。
OAuth 由互联网社区发起、后经 IETF 标准化,目前广泛使用的版本是 OAuth 2.0。日常见到的「使用微信登录」「使用 Google / GitHub 账号登录」等第三方登录,底层大多基于 OAuth 2.0 或在其之上构建的 OpenID Connect(OIDC)协议。
OAuth 2.0 定义了四个主要角色,典型授权流程围绕它们展开:
最常用的「授权码模式」大致流程是:应用把用户跳转到平台的授权页面,用户确认授权后平台返回一个授权码,应用再用授权码换取访问令牌(Access Token),之后凭令牌调用接口获取数据。
问:OAuth 是用来「登录」的吗?答:严格来说 OAuth 解决的是「授权」(能访问什么),而登录属于「认证」(你是谁)。第三方登录实际是基于 OAuth 之上的 OpenID Connect 等方案实现的,二者常被混为一谈。
问:OAuth 1.0 和 2.0 有什么区别?答:OAuth 2.0 是对 1.0 的重新设计而非简单升级,它简化了签名流程、依赖 HTTPS 保证传输安全,并针对网页、手机 App 等不同场景定义了多种授权模式,现已成为主流。
问:使用第三方登录安全吗?答:总体比到处注册账号更安全,因为密码只保存在原平台。但仍应只授权可信应用,并定期在平台的授权管理页面清理不再使用的应用。

| 类型 | 开放授权标准 / 网络协议 |
| 制定组织 | IETF 及开源社区 |
| 当前主流版本 | OAuth 2.0 |
| 典型用途 | 第三方登录、开放接口授权 |
| 官网 | oauth.net |
登录 后参与讨论
暂无讨论,来发表第一条评论吧