Spring Security(二):OAuth2.0协议
活动地址:CSDN21天学习挑战赛
今天学习与研究了OAuth2.0协议,记录一下,方便后面查阅
OAuth2.0即是一个开放标准,我们可以开发一个程序或平台,然后可以允许用户授权第三方程序来访问用户存储在我们平台上的数据或我们提供给用户的服务。
随着互联网的发展这种授权已经很普遍了,我们经常会用到的就有:使用微信就可以登录各大网站或App,这里就不需要重新建各大网站或App的账号,只要我们授权,这些网站就会获取我们微信公开的用户名、头像这些信息,接下来就可以访问这些网站或App提供的服务,这样为用户省去了非常多的事情,最少用户可以少记很多账号和密码。
OAuth2.0协议有四种认证方式
- 授权码模式
第三方应用向授权服务器申请授权码,资源所有者通过授权码对第三方应用进行授权,当然也可以拒绝授权,授权后授权服务器会返回一个令牌,然后第三方应用可以通过令牌向资源服务器申请开发资源 - 简化模式
和授权码模式类似,只是不在需要授权码,而是直接从授权服务获取令牌,然后通过令牌获取资源服务器的开发资源 - 密码模式
用户直接将自己的用户名和密码交给App或网页应用,App直接通过用户名和密码获取令牌。这种模式非常简单,但直接将用户的敏感信息泄露给了App或网页应用,所以一般是用于自己开发或同一个公司开发的程序之间进行授权 - 客户端模式
这是一种最简单但最不安全的模式,只要客户端有请求,那授权服务器直接给令牌,过程中不需要用户参与。一般用同一个公司不同产品之间相互申请资源的情况