【OAuth2】access code与access token的区别

两次请求,第一次是跳转到第三方并登录以得到access code,第二次是发送请求并携带access code以得到access token。为啥要设计成两次请求,可以参考这篇1,大意是解决access token被滥用的可能,因为第二次请求可能会携带ip、设备名、app名、access code来生成唯一的access token。为啥不在第一次请求时携带上这些信息,文章说可能是为了清晰,我觉得应该也为了省内存吧,如果第一次请求时用户名密码错误,携带那些信息就会占用提供OAuth2服务的服务端内存,没有必要。
这篇2感觉是补充,因为返回access code是通过回调,回调的第三方url可能是http的,直接返回access token存在安全问题。oauth2的服务器本身都是走https。
从本人工作中的使用来总结,access code会随第三方登录成功后的回调返回到浏览器,服务端处理该回调请求时会拿access code在服务端发起http请求到第三方换取access token,换取时需要携带服务端appId、secret等敏感信息,如果一次请求就能搞定那意味着浏览器发出的第三方请求里需要带上这些敏感信息,显然不如服务端发出更安全。
另外,附上一个和chatGpt聊天的截图,设计前后端+第三方认证的请求流时可考虑进来这个细节。
在这里插入图片描述
在这里插入图片描述


  1. https://zhuanlan.zhihu.com/p/92474561 ↩︎

  2. https://zhuanlan.zhihu.com/p/84670338 ↩︎

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值