OAuth2.0协议
OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。
举个例子,
用户在A网站存放了个人信息,当访问B网站的时候,B网站需要用户的某些信息,那么就可以从A网站进行获取。B访问A网站的时候不可能通过用户的账号密码进行访问,因为这样就相当于把用户的所有信息都暴露给了B网站,并且用户取消授权的唯一方式只有修改密码,十分不方便。因此这时候由A网站针对B网站的访问提供一个特殊的令牌,这个令牌需要用户在某个特定页面进行授权,当用户授权之后,B网站可以在特定时间内访问用户在A网站的特定内容。
结构
- 服务提供者-存放用户某些个人信息
- 用户-个人信息的拥有者
- 客户端-要访问服务提供方资源的第三方应用,通常是网站
流程-距离
参考淘宝对OAuth2.0的使用
- 用户在服务提供方存放资源 - 商家在淘宝存放商品信息和订单信息
- 用户登录客户端 - 商家登陆自家商品订单管理系统
- 用户希望操作存放在服务提供方的资源 - 商家希望获取到淘宝的订单信息
- 用户操作系统向服务提供方发起请求 - 商家操作系统向淘宝发起请求
- 服务提供方返回授权页 - 淘宝返回授权页,需要商家确认是否授权(可能需要用户名、密码)
- 服务提供方验证通过后返回一个code - 商家授权后,淘宝返回一个code给系统
- 客户获取到临时令牌后,用户操作客户端读取服务提供方中的内容 - 系统通过code获取到淘宝的access_token,通过access_token对淘宝的订单进行访问。
- https://open.taobao.com/doc.htm?docId=118&docType=1