Apifox 2.5.15 及以上版本已支持根据 OAuth 2.0 协议规范直接获取访问令牌,无需在其它工具中生成后再粘贴过来。
Apifox 支持 OAuth 2.0 协议定义的五种常见授权模式,它们分别如下:
在众多授权模式中,最常见和最经典的授权模式是 Authorization Code (授权码模式) ,接下来,我们将以阿里云 OAuth 2.0 登录为例,在 Apifox 中详细介绍如何配置该模式。在正式开始实践之前,我们先来温习一下什么是 OAuth 2.0!
什么是 OAuth 2.0
OAuth 2.0 是一种授权框架,它可以让第三方应用程序在得到你的授权后,有限度地访问一些开放的个人信息。
OAuth 2.0 的运行流程可以用下图表示,其中,客户端代表一方,用户为另一方,认证服务器与资源服务器统一作为一方。
在实际应用中,我们可以简化为 3 步来理解:
- 获取授权码 (code) :比如你在一个网站中使用微信扫码登录,这就是一种授权,这一步可以让客户端拿到授权码
- 根据授权码向第三方平台的 OAuth 2.0 服务申请访问令牌 (Token) :客户端使用授权码向认证服务器申请访问令牌,这个令牌允许客户端在一段时间内访问用户的受保护资源。
- 根据令牌 (Token) 获取第三方平台的开放资源:客户端使用获得的访问令牌去访问资源服务器,以获取用户授权范围内的受保护资源。
用一条公式来简化,可以简单表示为:授权码 (code) + 访问令牌 (Token) = 开放资源。这个公式概括了整个 OAuth 2.0 的主流程,即通过授权码获取访问令牌,然后利用令牌去访问开放资源。
我们将通过一个阿里云 OAuth 2.0 登录的例子来进一步实践一下,并讲述如何在 Apifox 中调试。
授权码模式的 OAuth2.0 鉴权
1 获取客户端 ID 和客户端密钥**
我们首先需要到 OAuth 2.0 服务提供者的后台获取到客户端 ID (Client ID) 和客户端密钥 (Client Secret) ,在阿里云中,你需要到 RAM控制台新建一个 OAuth 应用,里面的应用 ID 就是客户端 ID (Client ID) 。
然后在应用中,创建一个密钥,创建时显示的 AppSecretValue 就是客户端密钥 (Client Secret) ,