文章目录
一、概念说明
OAuth是Open Authorization的简写。
OAuth协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是 OAuth的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAuth是安全的。
OAuth2.0是OAuth协议的延续版本,但不向前兼容(即完全废止了OAuth1.0)。
二、简要介绍
(一)、授权概念
用户想要登录A网站,A网站让用户提供第三方网站(即下文的B网站)的数据,证明自己的身份,这就是我们日常生活中常见的第三方登陆方式。其中获取第三方网站的身份数据,就需要OAuth(Open Authorization)授权。例如CSDN网站的登陆:
OAuth的授权不会使第三方应用触及到用户的帐号信息(如用户名与密码),即第三方应用无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAuth是安全的。简单说,数据的所有者告诉B网站,同意授权A网站进入系统,获取用户数据。B网站从而产生一个短期的进入令牌(token),用来代替密码,供A网站使用。
令牌(token)与密码的作用是相同的,都可以借助其进入系统。但令牌和密码却也有一些差异:
- 时间限制(令牌有时间限制,过期自动失效(一般过期前会自动刷新),用户无法干预;密码一般是长期有效的)
- 权限范围(令牌一般只能读取用户数据(只读权限);密码一般是拥有完整的权限控制(读写权限))
- 用户可控(用户可以撤销令牌,使其立即失效;密码一般是不允许被撤销的)
令牌和密码一样必须保密,泄露了令牌一般就等同于泄露了密码。
(二)、OAuth2.0相关概念
OAuth2.0的标准是