B站视频
概念
Oauth2.0(Open Authorization)
一个关于授权的开放网络标准
允许用户授权第三方应用访问用户存储在其他服务提供者上的信息
不需要将用户名和密码提供给第三方应用
Oauth2中的各个角色
授权码模式
第一步 获取授权码
以上流程中的授权接口
第二步 申请token
注意:其中的第【I】步 校验令牌
普通token是无意义的字符串,并且是由授权服务器颁发的
资源服务器并不知道token是否合法,需要交给授权服务器进行校验,但这样会导致额外的网络IO影响性能
可以使用JWT替代普通token,这样资源服务器使用与授权服务器相同的密钥,就可以校验JWT中的签名是否合法,无需再交给授权服务器进行校验
以上流程中的获取token接口:
简单模式
是授权码模式的简化版本
省去了客户端使用授权码申请token的步骤
适用于没有后台服务的单页面应用
因为 没有服务器端 就无法在后台请求token接口
密码模式
资源所有者基于对客户端程序的信任,
让客户端拿着自己的账号和密码,到授权服务器上申请token,省去了访问授权接口的步骤。
调用token接口时,设置用户的账号
、密码
,并将授权模式设置为password
(密码模式)
客户端模式
是最简单的模式
客户端以自己的名义向授权服务器申请token
调用token接口时,设置客户端id
、密码
,并将授权模式设置为client_credentials
(客户端模式)