上周我的自研开源项目开始破土动工了,《开源项目迈出第一步,10 选 1?页面模板成了第一个绊脚石 》 ,密谋很久才付诸行动,做这个的初衷就是不想让自己太安稳,技术这条路不进步就等于后退,必须要逼着自己学习。
项目偏向于技术实践,因此不会做太多的业务堆砌,业务代码还是在公司学习比较好。现在正在做技术的选型与储备,像比较主流的,项目前后端分离
、微服务
、Springboot
、Springcloud
等都会应用到项目中,其实很多技术我也不会,也是在反复的查阅资料求证,探索的过程技术提升真的要比工作中快很多,毕竟主动与被动学习是有本质区别的。
这几天打算先把项目的前后端分离架构搭建完成,既然是前后端分离项目就免不了做鉴权, 所以 oauth2.0
是一个我们不得不了解的知识点。
一、OAuth2.0 为何物
OAuth
简单理解就是一种授权机制,它是在客户端和资源所有者之间的授权层,用来分离两种不同的角色。在资源所有者同意并向客户端颁发令牌后,客户端携带令牌可以访问资源所有者的资源。
OAuth2.0
是OAuth
协议的一个版本,有2.0
版本那就有1.0
版本,有意思的是OAuth2.0
却不向下兼容OAuth1.0
,相当于废弃了1.0
版本。
举个小栗子解释一下什么是 OAuth 授权?
在家肝文章饿了定了一个外卖,外卖小哥30秒火速到达了我家楼下,奈何有门禁进不来,可以输入密码进入,但出于安全的考虑我并不想告诉他密码。
此时外卖小哥看到门禁有一个高级按钮“一键获取授权
”,只要我这边同意,他会获取到一个有效期 2小时的令牌(token
)正常出入。
![f6aa01939fb02cc7bdcef8946760c469.png](https://img-blog.csdnimg.cn/img_convert/f6aa01939fb02cc7bdcef8946760c469.png)
token
)和
密码
的作用虽然相似都可以进入系统,但还有点不同。
token
拥有权限范围,有时效性的,到期自动失效,而且无效修改。
二、OAuth2.0 授权方式
OAuth2.0<