16

我正在尝试使用具有授权类型客户端凭据的 OAuth2 调用授权端点——我的调用成功——这不是问题。但是,我现在想要获取返回的访问令牌并将其放入一个变量中,这样我就可以在后续调用中使用它,而无需手动剪切并粘贴到我的其他调用中。

当呼叫返回时,我在 OAuth2 窗口底部的 Access Token 字段中看到了我想要复制的令牌(下图显示 42 分钟后过期),并且我在 Timeline 选项卡上的 Authorization 字段中看到它结果。我只是不知道如何访问它,所以我可以将它转储到变量中。

在此处输入图像描述

在此处输入图像描述

4

4 回答 4

42

常见问题解答上的 gif 非常快,并且没有一步一步提供。另外,我在 YouTube 或其他网站上没有找到任何答案,所以我想逐步分享在 Insomnia 上链接请求的步骤。

  1. 创建一个 POST 查询以获取您的访问令牌。请注意,我的访问令牌在名为“access_token”的字段中返回,我们将在步骤 3 中使用它。您的返回字段可能不同。

在此处输入图像描述

  1. 为将为您返回数据的 API 创建第二个 GET 请求。就我而言,我想从 SCIM 界面获取所有用户。在 Bearer 选项卡中,输入 Response => Body Attribute(Insomnia 将自动填充)。

在此处输入图像描述

  1. 鼠标单击 Request => Body Attribute(您刚刚输入的那个),然后在下拉“Request”(这是您在步骤 1 中创建的那个)中选择身份验证帖子,然后在“Filter (JSONPath)”中选择字段,输入 $.[attribute name] - 其中属性名称是从身份验证调用返回的响应。就我而言,它是 access_token,请参阅第 1 步。

在此处输入图像描述

享受!!

于 2020-06-16T15:29:06.270 回答
14
  1. 单击No Environment > Manage Environments,您将看到JSON中的基本环境。
  2. 由于这是在JSON中,因此为您的令牌变量创建一个 { "jwt_token": "Response => Body Attribute" }" 对。请注意,需要配置“ Response => Body Attribute ”。当您键入响应时,请点击空格并且该选项应该可用。
  3. 选择“响应=>正文属性”后,它会显示一些乱码内容和红色背景,不用担心...只需单击它进行配置。确保您有相同的设置。 在此处输入图像描述

但是......您需要将您的请求更改为从服务器获取令牌的路由,另一件事是过滤器(JSONPath 或 XPath)根据您的设置更改它。

您应该拥有存储在jwt_token变量中的令牌,并且可以在您喜欢的路线上使用该变量。

例子:

在此处输入图像描述

于 2020-03-04T05:54:17.283 回答
5

如果要将响应中返回的令牌保存到环境变量中,可以在环境变量中使用请求链。查看此 url 以了解有关该https://support.insomnia.rest/article/43-chaining-requests的更多详细信息...

这是你可以做的(我做了什么)

  1. 创建环境变量
  2. 对于变量的值,使用Response => Body Attribute并在Filter (JSONPath or XPath)下,选择响应正文中标记的属性(如果它是“token”,则放入$.token)。
  3. 之后,只需将令牌环境变量放在以下请求中您需要的任何位置。
于 2019-05-29T14:39:44.950 回答
1

我无法解决这个问题,但能够通过定义请求正文中的字段并完全绕过 OAuth2 选项卡来解决它。

于 2019-02-28T17:59:39.523 回答