目录
一、什么是OAuth2?
OAuth2.0
是目前使用非常广泛的授权机制,用于授权第三方应用获取用户的数据。
OAuth 引入了一个授权层,用来分离两种不同的角色:客户端和资源所有者。 ...... 资源所有者同意以后,资源服务器可以向客户端颁发令牌。客户端通过令牌,去请求数据。
二、OAuth2中的角色
1、资源所有者
能够授予对受保护资源的访问权限的实体,如果资源的所有者为个人,也被成为最终用户
2、资源服务器
存储有受保护资源的服务器, 能够接受并验证访问令牌,并响应受保护资源的访问请求
3、客户
需要被授权,然后再访问受保护资源的实体。客户这个术语,并不是特指应用程序,服务器,计算机 等
4、授权服务器
验证资源所有者并获取授权成功后,向客户发出访问令牌
三、认证流程
client:客户——>腾讯视频APP
resource owner:资源所有者——>本人的微信(我)
Authorization server:认证服务器——>OAuth2
resource server:资源服务器——>微信服务器
举例说明:
登录腾讯视频APP,首先由腾讯视频发送认证申请给我的微信,接着由我同意授权,返回一个授权码code给腾讯视频,接着腾讯视频拿着授权码code请求OAuth2,接着OAuth2返回一个token令牌给腾讯视频,腾讯视频拿着token令牌请求微信服务器,微信服务器同意腾讯视频的登录。
四、OAuth2授权方式
由于互联网有多种场景, OAuth2定义了四种获取令牌的方式:授权码(authorization-code)隐藏式(implicit)密码式(password)客户端凭证(client credentials)
注:使用令牌方式的优点
1、令牌又时效性,一般是短期的,且不能修改,密码一般是长期有效的2、令牌可以由颁发者撤销