OAuth 实战笔记(一)基础(1)

310 阅读2分钟

一、 OAuth 2.0 简介

OAuth 2.0 是什么?

OAuth 2.0 就是一种授权协议。OAuth 2.0 这种授权协议,就是保证第三方(软件)只有在获得授权之后,才可以进一步访问授权者的数据。

OAuth 2.0 授权的核心就是颁发访问令牌、使用访问令牌。

举个例子:

  1. OAuth 2.0 的核心是授权许可,更进一步说就是令牌机制。也就是说,像小兔软件这样的第三方软件只有拿到了京东商家开放平台颁发的访问令牌,也就是得到了授权许可,然后才可以代表用户访问他们的数据。
  2. 互联网中所有的受保护资源,几乎都是以 Web API 的形式来提供访问的,比如极客时间App 要获取用户的头像、昵称,小兔软件要获取用户的店铺订单,我们说 OAuth 2.0 与安全相关,是用来保护 Web API 的。另外,第三方软件通过 OAuth 2.0 取得访问权限之后,用户便把这些权限委托给了第三方软件,我们说 OAuth 2.0 是一种委托协议,也没问题。
  3. 也正因为像小兔这样的第三方软件,每次都是用访问令牌而不是用户名和密码来请求用户的数据,才大大减少了安全风险上的“攻击面”。不然,我们试想一下,每次都带着用户名和密码来访问数量众多的 Web API ,是不是增加了这个“攻击面”。因此,我们说 OAuth 2.0 的核心,就是颁发访问令牌和使用访问令牌。

授权码许可类型中,为什么一定要有授权码?

在小兔打单软件的例子里面,小兔最终是通过访问令牌请求到小明的店铺里的订单数据。同时呢,我还提到了,这个访问令牌是通过授权码换来的。到这里估计你会问了,为什么要用授权码来换令牌?为什么不能直接颁发访问令牌呢?