【问题标题】:Karate API Test - Bearer error="invalid_token", error_description="The audience <number> is invalid"空手道 API 测试 - Bearer error=\"invalid_token\", error_description=\"The audience <number> is invalid\"
【发布时间】:2023-01-27 07:12:38
【问题描述】:

我使用密钥生成一个访问令牌,我将使用该令牌对我调用的 API 进行身份验证。问题是我收到错误:

状态代码是:401,预期:200 WWW-Authenticate: Bearer error="invalid_token", error_description="观众value无效"

这就是我调用 API 的方式

给定网址https://login.microsoftonline.com/tenant_id/oauth2/token 和表单字段 grant_type = client_credentials 和表单字段 client_id = value 和表单字段 client_secret = value 当方法发布 然后状态200

匹配 response.access_token != null

def access_token = response.access_token

打印 access_token

给定标头 Authorization = 'Bearer ' + access_token 给定网址“网址” 标题接受=plain/text 标题“X-Mimic-User”= confidential 当方法 GET 然后状态200

我期待使用生成的访问令牌对 API 进行身份验证。

【问题讨论】:

  • 我不知道您调用的 API 的详细信息,所以我无能为力。看看这些是否有帮助:stackoverflow.com/search?tab=newest&q=%5bkarate%5d%20oauth
  • 这是托管在 AWS 中的 swagger API
  • 该错误特定于您的身份验证端点,但您未能在此票证中包含该值,因此我们甚至不知道您是否传递了它。此外,我们不知道失败是在 POST 上还是在 GET 上。您需要提供足够的信息,以便有人能够为您提供帮助。
  • 失败发生在 GET 上,令牌正在 POST 上生成,但在 GET 上使用时无法进行身份验证。终点是正确的。它适用于邮递员。这是 url <domain>/api/investment-research/v1/Analysts
  • @ThabisoDitabe 您可能缺少标题。尝试添加 Accept 因为 Postman 会自动添加它,而空手道不会。除此之外,我认为这里没有足够的信息供任何人帮助你,一切顺利

标签: azure api token karate


【解决方案1】:

所以看起来你的错误可能与 Authorization 标头有关,尽管错误描述很难破译,可能与范围有关?我会首先列出 URL,而不是标头,除非您正在重新使用它,并且想要 configure 后续请求的值。另一种设置 Bearer 令牌的方法是:

And match response.access_token == '#present'

* def oauthToken = `Bearer ${response.access_token}`

但真正最重要的是检查你的请求,包括标题,并在 Karate 和 Postman 之间进行比较,看看有什么不同。

【讨论】:

    猜你喜欢
    • 2022-07-12
    • 2022-01-10
    • 2018-08-03
    • 2020-06-03
    • 2022-10-25
    • 2021-09-06
    • 2020-12-24
    • 2021-02-06
    • 2020-10-08
    相关资源
    最近更新 更多