极客时间-使用Spring Security搭建一套基于JWT的OAuth 2.0架构
之前还写过一个简化版本的,可以参考spring-security-oauth2-demo
OAuth2.0是一种授权协议,相当于你将自己在某个服务的指定数据等权限,授权给了第三方另一个服务
Q:为什么不直接提供用户名和密码给三方服务呢?
A:安全问题
使用步骤:
- 在三方系统操作登录,跳转到资源服务对应的授权平台
- 用户点击授权
- 授权平台重定向回三方系统页面,并携带授权码
- 三方服务后端通过授权码,调用授权服务获取到对应的access_token
- 三方服务后端通过access_token获取到已经被授权的数据
Q:为什么需要授权码中转一次
A:access_token非常重要,不能暴露给前端浏览器,只能后端系统交互使用
access_token中的内容,可以使用jwt的方式
同时access_token有过期时间,可以通过 refresh_token刷新