llms.txt: machine-readable documentation index. Markdown version of this page is also available.

IntelliJ IDEA 2026.3 Help

OAuth 2.0 授权

HTTP 客户端支持 OAuth 2.0 授权。 您可以获取访问令牌并对 OAuth 2.0 受保护资源的请求进行身份验证。 为了让您输入用户凭据,HTTP 客户端 在内置的 JCEF 浏览器中显示登录表单。 这个非模态浏览器不会阻止您在 IDE 中工作,例如,允许您复制和粘贴您的用户名和密码。

一个典型的流程包括以下步骤:

  1. 指定身份验证设置 ,例如授权类型和令牌 URL,以 JSON 格式在公共环境文件中。

  2. 在您的 HTTP 请求中引用此身份验证配置 使用 $auth.token 变量。

  3. 运行请求。 如果身份验证成功,您将访问受保护的资源。 您可以在 HTTP 客户端身份验证日志 或 服务 工具窗口中检查接收到的访问令牌和刷新令牌。

  4. 您还可以 手动刷新访问令牌或通过 请求新令牌重新初始化身份验证过程。

创建身份验证配置

  1. 在 .http 文件中,在 使用以下方式运行 列表中,选择您想添加身份验证配置的环境。

  2. 在工具栏中点击 "添加"图标 并选择 身份验证配置。

    这将向公共环境文件中添加一个身份验证配置模板,在所选环境的 "Auth" 对象的 "安全" 下。 例如:

    { "dev": { "Security": { "Auth": { "auth-id": { "Type": "OAuth2", "Grant Type": "", "Client ID": "" } } } } }
  3. 将占位符 auth-id 替换为一个有意义的名称,以便在您的 .http 文件中引用此配置。

  4. 请指定 认证参数。 所需的参数取决于所选的 "Grant Type"。 使用 IntelliJ IDEA 编码辅助功能填写认证参数:开始输入参数名称或按 Ctrl+Space 以获取可用 JSON 键列表。

在 HTTP 请求中使用身份验证配置

一旦创建了身份验证配置,您可以使用它来获取访问令牌并验证您的请求。

  1. 将身份验证配置的名称传递给 {{$auth.token()}} 变量,例如, {{$auth.token("my-config")}}。 您可以在请求 Authorization 头或查询参数中使用此变量。

  2. 点击 运行 发送请求。 在访问受保护资源之前,HTTP 客户端将向授权服务器发送请求以获取访问令牌。

  3. 出现提示时,请完成身份验证过程。 如果身份验证成功完成,HTTP 客户端将访问受保护的资源。

要快速添加 {{$auth.token()}} 变量,您可以使用实时模板:在 HTTP 方法中,在 标头 部分开始输入 AuthorizationToken ,并从出现的建议列表中选择可用的认证。

HTTP 客户端 身份验证配置

当您运行这样的请求时, 显示身份验证日志 按钮将在 服务 工具窗口中可用。 它让您查看重定向页面、访问令牌和其他身份验证详细信息。

手动获取访问令牌

当您在 HTTP 请求中引用身份验证配置时,HTTP 客户端会在访问受保护资源之前自动获取(或刷新)访问令牌。 如果您想在不向受保护资源发送实际请求的情况下获取访问令牌,您可以手动获取访问令牌。

  1. 在 http-client.env.json 文件中,点击 运行 旁边的认证配置名称。

  2. 如果身份验证配置包含 私有变量 ,请选择显示的弹出窗口中的私有环境文件。

  3. 出现提示时,请完成身份验证过程。

如果身份验证成功,IntelliJ IDEA 将获得访问令牌。 如果您已经拥有访问令牌,但它已过期,IntelliJ IDEA 将会刷新它。

获取新的访问令牌

除了刷新令牌之外,您还可以通过重新身份验证来获取新令牌,也就是重复您用于获取初始访问令牌的原始流程。

  1. 在 http-client.env.json 文件中,将文本光标放在身份验证配置名称上。

  2. 按 Alt+Enter (显示上下文操作​​ ),然后选择 强制获取身份验证令牌。

  3. 如果身份验证配置包含 私有变量 ,请选择显示的弹出窗口中的私有环境文件。

当您的文本光标位于 $auth.token 变量的 .http 文件中时,您可以调用相同的操作。 在这种情况下,您无需选择一个私有环境文件,因为 HTTP 客户端 将使用与您的 .http 文件位于同一文件夹中的那个文件。

当您刷新或获取新令牌时,访问令牌、刷新令牌及其他身份验证详细信息会显示在 HTTP 客户端身份验证日志 工具窗口中(查看 | 工具窗口 | HTTP 客户端身份验证日志)。

HTTP 客户端身份验证日志工具窗口

清除浏览器 Cookie

您的授权服务器可能会将身份验证数据存储在浏览器 Cookie 中。 如果您想使用不同的数据测试身份验证流程,您可能需要清除内置 JCEF 浏览器的 cookies。

  1. 在 http-client.env.json 文件中,将文本光标放在认证配置名称上并按 Alt+Enter (显示上下文操作​​)。

  2. 选择 清除浏览器 Cookie。

或者,您可以通过点击 清除 Cookie 在 HTTP 客户端身份验证日志 工具窗口中清除 cookies。

使用 ID 令牌代替访问令牌

如果您的服务器需要使用 ID 令牌而不是访问令牌,您可以通过以下任何一种方式配置 HTTP 客户端 来实现这一点:

  • 在您的身份验证配置中,使用 "Use ID Token": true 参数。

  • 在一个 .http 文件中,使用 $auth.idToken 变量,例如 Authorization: Bearer {{$auth.idToken("auth-id-1")}}。

使用自定义身份验证参数

HTTP 客户端 提供了一个定义自定义请求参数的选项,以满足您的授权服务器可能需要的要求。 这包括例如 resource 和 受众 扩展了OAuth 2.0授权框架。

  1. 在您的身份验证配置中,添加 "自定义请求参数" 对象。

  2. 在 "自定义请求参数" 内,输入您的参数名称和值(字符串或数组)。

  3. 如果您想将参数的使用限制在某些请求上,请将该值定义为具有两个键的对象:

    • "值" (参数值)

    • "Use" — 使用该形参的作用域。 它有三个可能的值:

      • "Use": "Everywhere" (在任何请求中)

      • "Use": "In Auth Request" (仅用于身份验证请求)

      • "Use": "In Token Request" (仅用于令牌请求)

    例如:

    "auth-id-1": { "Type": "OAuth2", "Custom Request Parameters": { "audience": { "Value": "https://my-audience.com/", "Use": "In Token Request" }, "resource": [ "https://my-resource/resourceId1", "https://my-resource/resourceId2" ], "my-custom-parameter": "my-custom-value" }, }

使用 HTTP 客户端身份验证日志 工具窗口查看请求中使用的参数及其值。

使用自定义请求头

HTTP 客户端提供了一个选项,可使用您的授权服务器可能需要的自定义请求头。

  1. 在您的身份验证配置中,添加 "Custom Request Headers" 对象。

  2. 在 "Custom Request Headers" 中输入您的头名称及其值。

    按 Ctrl+Space 获取流行头的建议列表,例如 Accept、 Cookie 或 User-Agent。

  3. 如果您想将头的使用限制在某些请求中,请将值定义为具有两个键的对象:

    • "值" (头值)

    • "Use" — 使用该头的范围。 它有三个可能的值:

      • "Use": "Everywhere" (在任何请求中)

      • "Use": "In Auth Request" (仅用于身份验证请求)

      • "Use": "In Token Request" (仅用于令牌请求)

    例如:

    "auth-id-1": { "Type": "OAuth2", "Custom Request Headers": { "Accept": { "Use": "Everywhere", "Value": "application/javascript" }, "my-custom-header": "my-custom-value" }, }

认证配置参数

类型

身份验证类型。 可能的值:

  • "OAuth2" :使用 OAuth2 进行请求验证。

  • "Mock" (用于开发或测试环境):模拟认证过程——IntelliJ IDEA 将使用来自认证配置的令牌,而不是由 OAuth2 服务器提供的访问令牌。 请提供 "Token" 作为访问令牌,并可选地提供 "ID Token" 作为 ID 令牌。 例如:

    "my-auth-id": { "Type": "Mock", "Token": "my-token" }
授权类型

获取访问令牌的方法。 可能的值: "Authorization Code"、 "客户端凭证"、 "Device Authorization"、 "隐式" 和 "密码"。

授权URL

应用程序将重定向客户端请求以获取授权代码的授权 URL。 "Auth URL" 是授权代码和隐式授予类型所必需的。

令牌 URL

供应商的认证服务器,用于将授权代码交换成访问令牌。 "Token URL" 是授权码、客户端凭据、设备授权和密码授权类型所必需的。

重定向 URL

客户端应用程序 callback URL ,请求在身份验证后应重定向到该地址。 这可以是来自您的客户端应用程序设置的 URL,或者,如果授权服务器接受任何 URL,请使用任意 URL,例如 http://localhost:12345/foo/bar。

客户端 ID

您向 API 提供者注册的客户端公共标识符。 所有 授权类型均需要此参数。

客户端密钥

由客户端应用程序用于向授权服务器进行身份验证的机密标识符。 此参数是 Client Credentials grant type 所必需的。

客户端凭据

输入以下其中之一:

  • "无" 如果您不想在请求中指定客户端凭证。

  • "in body" 如果您想在请求正文中发送客户端凭证。

  • "基本" 发送请求头中的 Basic 认证请求(默认值)。

设备认证URL

客户端设备请求以获取设备代码和用户代码的 URL。

适用于设备授权许可类型并且是必需的。

打开完整 URI

当设置为 true 时,浏览器会打开一个验证 URI,其中包含用户代码(verification_uri_complete)。 默认值是 false :浏览器打开验证 URI(没有嵌入的用户代码),用户通常需要手动输入代码。

适用于设备授权授予类型。

在浏览器之后开始轮询

当设置为 true 时,客户端设备应仅在浏览器关闭后向 token 端点发送 access token 请求(轮询)。 默认值是 false :设备持续轮询令牌端点,直到用户完成交互或代码过期。

适用于设备授权授予类型。

PKCE

启用 Proof Key for Code Exchange (PKCE)。 适用于授权码许可类型。

输入 "PKCE": true 以使用默认算法(对自动生成的代码验证器进行 SHA-256 哈希处理)。 或者使用 "代码挑战方法" (纯文本或 SHA-256)和 "代码验证器" 自定义行为。 例如:

"PKCE": { "Code Challenge Method": "Plain", "Code Verifier": "YYLzIBzrXpVaH5KRx86itubKLXHNGnJBPAogEwkhveM" },
范围

限制应用程序访问用户帐户的范围。 可能的值取决于您尝试访问的服务。

自动获取

默认情况下,HTTP 客户端 会在发送请求之前自动刷新或获取访问令牌。 如果您不想在发送请求之前自动刷新或获取访问令牌,请输入 "Acquire Automatically": false。 您可以手动刷新或获取。

用户名

作为授权的一部分发送的用户名,与 Password 授权类型一起使用。

密码

作为授权的一部分发送的用户密码,用于 Password 授权类型。 为了避免共享您的密码,您可以使用 private variable而不是值,例如 "密码": "{{password}}"。

自定义请求参数

指定 自定义请求参数

自定义请求头

指定 自定义请求头

2026年 11月 3日