OAuth 2.0知识点
参考博客
1、诞生背景
OAuth2.0 是目前最流行的授权机制,用来授权第三方应用,获取一定的权限。
在我们普通的应用中,使用到的权限认证都是使用密码的方式,当一个用户进行登录操作的时候,就能获得一定的权限。但是,一个服务可能有第三方的用户需要来调用,如果每个第三方的用户调用我们都分配一个用户名密码给他们,这样会使得我们的用户、权限管理变得复杂起来。因为第三方的用户的访问大都是临时的,不受信任的,访问有限的。
面对这个问题,OAuth的解决思路是,当第三方的用户访问时,需要”管理员“分配一个令牌(token)给他,这个令牌有效期是短暂的,权限是有限的,这样的话,每当第三方访问服务的时候,都通过token访问即可。管理员发现有问题也可以即时撤销这个令牌。
2、授权方式
授权方式也就是”管理员“颁发token给第三方用户的方式,鉴于互联网的复杂场景,OAuth中使用的标准定义了获得令牌的四种方式:
授权码
基本流程:第三方用户先申请一个授权码,在用该授权码获得令牌
隐蔽式
有些应用是纯Web应用,没有后端,所以省略了授权码的请求,直接返回token。
密码式
当“管理员”高度信任某个第三方用户的时候,也可以直接将账号密码返回,用于申请token.
凭证式
不需要“管理员“授权,直接使用自身信息申请获得token.这种方式,有可能多个用户共享同一个令牌。
详细的图文并茂文章请查看,还有请求参数说明,十分直观。
3、令牌的使用
令牌的使用想必都知道,就是在http请求头中加上参数
Autorization: bear token
初次之外,当需要更新令牌的时候,并不需要重新授权,因为一开始颁布令牌的时候,就会返回两个token,一个用来存储数据,另一个用来更新令牌的有效期。