OAuth2.0 - 授权码模式源码分析

1、客户端跳转至用户授权页面

http://localhost:53010/uaa/oauth/authorize?response_type=code&client_id=heima_two

后台:AuthorizationEndpoint 接收请求

 其中根据client_id获取客户端信息:

 然后存入session:

 浏览器重定向至用户登录页面,用户输入用户名口令登录成功后,后台已经securitycontext上下文中已有此用户的Authentication。

浏览器接着重定向至客户端授权资源访问权限页面,用户选择授权权限提交后,还是回到 AuthorizationEndpoint :

另外一个:

接着:

如果两者都有认证token的话,取用户的token。

这也就解释了为什么返回的token里面的authorities是用户的authorites而不是客户端的authoties的原因。

然后存入数据库:oauth_code

接着:

默认username只有用户名,如果想要放入更多信息,则可扩展 username为一个JSON串,在userdetails里面扩展。

然后JWT将该对象转换为token 返回给用户

 2、客户端携带code请求token

当客户端拿着code来请求token时,会从数据库取出该code对应对象:

拼接response内容:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值