目录
一、什么是OAuth2?
OAuth2就是当前使用非常广泛的一种授权机制,用于授权第三方应用获取用户的数据。
例如:
就比如我们平常用的京东,我们可以选择其他方式来进行登录,这样就是用到了第三方登录。
其中的流程用官方的话来讲的话就是:
OAuth 引入了一个授权层,用来分离两种不同的角色:客户端和资源所有者。......资源所有者同意
以后,资源服务器可以向客户端颁发令牌。客户端通过令牌,去请求数据。
第一次接触OAuth2的可能有点看不懂,没关系,后面我会逐个举例解释!
二、OAuth2中有哪些角色?
上面我们提到了一些名词,客户端、资源所有者...等等,其实这些就是OAuth2中的角色,这里我们就用大白话解释一下它们分别代表着什么?
① 资源所有者
能够授予被保护资源的访问权限的实体,就相当于我们使用微信登录、微信的账号所有人;
② 资源服务器
存储有受保护资源的服务器, 能够接受并验证访问令牌,并响应受保护资源的访问请求,这个就相当于第三方登录平台,比如微信、它的服务器;
③ 客户
需要被授权,然后再访问受保护资源的实体。客户这个术语,并不是特指应用程序,服务器,计算机等,在我们的日常例子中就相当于我们要登录的京东;
④ 授权服务器
验证资源所有者并获取授权成功后,向客户发出访问令牌;
三、OAuth2的授权流程?
这个授权流程我也就直接用我们生活中基本都经历过的实例来说明:
例子:使用第三方平台授权登录京东;
就如下图,Client相当于京东,ResourceOwner相当于我们自己(资源所有者),AuthorizationServer相当于授权服务器,ResourceServer相当于微信(资源服务器),京东发出授权请求,我们点击同意,然后京东就告诉授权服务器,授权服务器就会发送令牌给京东,京东拿着令牌就向微信请求数据,微信得到令牌返回数据;
四、OAuth2令牌的特点?
使用令牌方式的优点:
令牌有时效性,一般是短期的,且不能修改,密码一般是长期有效的
令牌可以由颁发者撤销,且即时生效,密码一般可以不用修改而长期有效
令牌可以设定权限的范围,且使用者无法修改
在使用令牌时需要保证令牌的保密,令牌验证有效即可进入系统,不会再做其他的验证。
五、OAuth2有哪些授权方式?
<