1浏览器重定向不直接传token,而是先传一个code
2OAuth2 Client前端拿到code,传给OAuth2 Client后端
3OAuth2 Client后端携带这个code调用AS后端,AS校验成功后,放心地分发token。
为了安全,每一个code只能使用一次:AS一旦接收到携带这个code的请求,那这个code就作废了,不能使用同一个code再次请求了。同时,携带code交换token时,请求参数中需要携带OAuth2 Client的密钥。对于黑客来说,同一个code只能使用一次,还无法获取OAuth2 Client密钥,也就无法做token的暴力碰撞了。最重要的是:token一直在后端之间传递,根本就不给黑客通过浏览器窥视token的机会。
至此这就是完整的授权码模式流程。为什么要引入code来交换token的问题也就迎刃而解了。
OAuth2 协议
最新推荐文章于 2024-07-13 22:24:20 发布