参考视频:https://www.bilibili.com/video/BV1bP4y157yo?p=5&spm_id_from=pageDriver
参与角色资源拥有者
授权服务器 资源服务通过资源服务向外面进行返回,通过客户端进行交互
临时授权码
访问令牌 access token可以访问所有的授权服务
scope 权限范围
redirect_uri客户端消息推送地址
方式一、获取授权方账号信息并不会规定用什么技术实现
spring-cloud-starter-oauth2
code 临时票据
带上code去请求token
可以用access_token换取salary资源
目前仅支持授权码模式authorization_code
首先访问一个获取授权码地址
//接口 oauth/authorize?client_id=c1&response_type-code&scope-all
进入一个授权页面
此时获取到code(临时票据)
//请求uaa一个接口
uaa/oauth/token
grant_type authorization_code
有超时时间 拿到access_token
腾讯内部
方式二、简化方式
第二种流程
直接返回access_token
response_type=token
一些注意点
#access_token,这个#是前端的一个锚点。比较适合前端工程去接受请求。
简化模式适合第三方没有服务器条件(vue)
方式三、资源拥有者和第三方应用互相信任(密码模式)资源拥有者可以把用户名、密码交给第三方,直接与授权服务器进行交互。
相当于是一个资源托管的方式
//需要端口 /oauth/token //需要的参数 grant_type password 作为关键字 client_id client_secret username password
是一个信任升级的过程
第四种 客户端模式三方参与者对互相都是非常信任的
//参数
grant_type client_credentials
client_id
client_secret
小结
根据不同的互信状态,提供4种不同场景。
远程校验方式oauth_token:专门对access_token进行检测
要求token有足够安全性
缺点
每次请求需要去远程认证
解决方案
jwt本地校验方式让token字符串包好所有信息
声明一个token store
不再去进行远程服务调用
@AutoWired
private TokenStore tokenStore;
@Bean
public TokenStore tokenStore(){
return new JwtTokenStore(accessTokenConvert());
}
在uaa工程中也进行管理,下发的是jwt令牌。
什么是jwt令牌用客户端模式重新申请jwt令牌
可以申请到
这老师业务也不熟啊md



