OAuth 2.0实战-为什么要先获取授权码code?

OAuth 2.0实战-为什么要先获取授权码code?svg xmlns http www w3 org 2000 svg style display none svg

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



 
  
    
     
      
     

xx软件最终是通过访问令牌请求到我的公众号里的文章。访问令牌是通过授权码换来的。你有想过为何要用授权码换令牌,而不直接颁发访问令牌呢?

资源拥有者、客户端(即第三方软件)、授权服务和受保护资源。

  • 资源拥有者=> 我
  • 客户端 => xx软件
  • 授权服务 -> 公众号开放平台的授权服务
  • 受保护资源 -> 我的公众号里的文章

看着好像没问题?我访问xx软件,xx软件说要排版文章我得给它授权,不然vx公众号不干,然后xx软件就引导我跳转到了公众号的授权服务。到授权服务之后,开放平台验证xx的合法性及我的登录状态后,生成授权页面。我赶紧扫码同意授权,于是开放平台知道可以把我的文章数据给xx软件。

于是,开放平台生成访问令牌 ,并且通过后端服务方式返回给xx软件。xx就能正常工作。

但是当我被浏览器重定向到授权服务,我和xx间的连接就断了,相当于此时我和授权服务建立连接后,将一直“停留在授权服务页面”。我再也没有重连到xx。

为重建连接,又不能暴露访问令牌,就有这样的临时、间接凭证:授权码。因为xx最终要拿到高安全要求的访问令牌,并非授权码,授权码可以暴露在浏览器
有了授权码,访问令牌可以在后端服务间传输,同时还可重建我&xx间的连接。
所以,通过授权码,既考虑了我的用户体验,又考虑了通信安全。




执行授权码流程时,授权码和访问令牌在xx和授权服务间到底怎么流转的?

xx和授权服务间,并无直接通信,而是通过中间人(浏览器).

三方软件xx获取到授权码后,向授权服务发起获取访问令牌 的请求。

比如获取用户登录态信息的过程:

  • 通过 获取登录凭证 code,该步是在小程序内部通过调用微信提供的 SDK 实现的
  • 再通过该 code 换取用户的 session_key 等信息,即官方文档的 方法,同时该方法也是被强烈建议通过开发者的后端服务来调用

本文已收录在Github,关注我,紧跟本系列专栏文章,咱们下篇再续!

  • 🚀 魔都架构师 | 全网30W+技术追随者
  • 🔧 大厂分布式系统/数据中台实战专家
  • 🏆 主导交易系统百万级流量调优 & 车联网平台架构
  • 🧠 AIGC应用开发先行者 | 区块链落地实践者
  • 🌍 以技术驱动创新,我们的征途是改变世界!
  • 👉 实战干货:编程严选网

小讯
上一篇 2026-04-07 11:34
下一篇 2026-04-07 11:32

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/219283.html