写在前面:
在此感谢 阮一峰 老师,以下内容是看了阮一峰老师 OAuth 2.0 的笔记。自己理解记录下来,以便自己后续学习或帮助到一些人。
OAuth 2.0 是目前最流行的授权机制,用来授权第三方应用,获取用户数据。
OAuth 就是一种授权机制。数据的所有者告诉系统,同意授权第三方应用进入系统,获取这些数据。系统从而产生一个短期的进入令牌(token),用来代替密码,供第三方应用使用。
解释 OAuth 2.0 授权时序图:
图形中的授权系统是后台服务系统中引入的支持OAuth 2.0 机制的第三方插件(如:Apache Shiro 或 Spring Security)。这里分开显示便于理解。
第三方应用或用户,想要拥有访问后台一些数据的权限,必须先向授权系统申请需要哪些权力,授权系统将申请信息发送给后台数据管理者或数据拥有者,后台数据管理者或数据拥有者确认申请者信息是否正确,当核实申请人信息属实,后台管理者通知授权系统分配给申请人一个具有时间范围和数据权限的访问令牌,在令牌有效期内,令牌使用者可以随时用令牌通过授权系统访问到后台相应数据。当令牌到达使用期限,令牌使用者将无法在访问后台相应数据,或在令牌有效期内,后台管理者或数据拥有者想要收回令牌使用权限,可以通知授权系统。授权系统会将令牌设置为失效状态,终止令牌的使用权限。
令牌的好处:
1. 时效。令牌是有时间范围的,超时即失效,使用者无法修改。
2. 解除。令牌发放者或后台数据管理者,可以随时收回令牌使用权限。
3. 范围。令牌的访问数据是有权限范围的。