1. OAuth2是什么
1.1 OAuth2授权模式
| 序号 | 名称 | 简介 | 安全性 |
|---|---|---|---|
| 1 | 授权码模式 | 最完整和严谨的授权模式,第三方平台登录都是此模式 | 最高 |
| 2 | 简化模式 | 省略授权码阶段,客户端是纯静态页面采用此模式 | 高 |
| 3 | 密码模式 | 把用户名密码告诉客户端,对客户端高度信任,比如客户端和认证服务器是同一公司 | 一般 |
| 4 | 客户端模式 | 直接以客户端名义申请令牌,很少用 | 最差 |
1.2 T31授权流程
1.3 Cookie session和token的区别
- cookie是不能跨越的,前后端分离分布式架构实现多系统SSO非常困难
- 移动端应用没有cookie,所以对移动端支持不好
- token基于header传递,部分解决CSRF攻击
- token要比seesinID大,客户端存储在Local Storage中,可以直接被JS读取
2. OAuth2实战
2.1 授权服务器配置
Oauth2Config
SecurityConfig
2.2 资源服务器
OAuth2ResourceServerConfiguration
SecurityConfiguartion
3. 授权模式
3.1 授权码模式
- 申请授权码
- 输入用户名密码
- 返回授权码
- 申请令牌