【问题标题】:Retrieve API data Microsoft Health Bot - Authorization error JWT verification failed检索 API 数据 Microsoft Health Bot - 授权错误 JWT 验证失败
【发布时间】:2021-06-25 12:09:45
【问题描述】:

我尝试按照以下 repo 文档从 Microsoft health bot 检索 API 数据:https://github.com/microsoft/HealthBotCodeSnippets/tree/master/HealthAgentAPI,其中 GET API 端点假定为 https://us.healthbot.microsoft.com/api/account/${tenantName}/scenarios

JWT 签名令牌应该在哪里:

{
  "tenantName": "myTenant", (tenant is from my Health bot portal)<br />
  "iat": "1648533033"  
}

(我输入了 2022 年,我从 Unix 时间戳得到的 iat 值:https://www.unixtimestamp.com/

所以我把上面的tenantName和iat放在JWT网站(https://jwt.io/)中,生成JWT token。
在邮递员上:我使用上述端点发出GET 请求,在标题选项卡上,我将Authorization 放置为KEY 和Bearer &lt;JWT Token just generated&gt; 的值。

响应为Authorization error - JWT verification failed 400 错误请求

谁能帮忙找出我的任何错误?

【问题讨论】:

  • 我不熟悉 ms-health-bot,但您的令牌包含声明 iat,即在(令牌创建时间戳)发布的时间。因此,验证失败可能是因为 iat 时间戳在未来太远了。请尝试使用当前时间。同样,这只是一个猜测。你用哪个秘密签署了令牌?
  • @jps 解决方案是我没有在 VERIFY SIGNATURE 上放置正确的秘密,所以当你解码时,你还需要把正确的秘密值放在你可以在你的 Health bot 的 MS Portal 上找到的地方
    集成部分 > 秘密 > API_JWT_SECRET 加油,希望这个答案也能帮助到你。

标签: jwt postman microsoft-health-bot


【解决方案1】:

解决方案是我在生成 JWT 令牌时没有在 VERIFY SIGNATURE 上放置正确的秘密,所以当你解码时,你还需要将正确的秘密值放在你可以在你的 Health bot 的 MS Portal 上找到的位置
集成部分 > 秘密 > API_JWT_SECRET

加油,希望这个回答也能帮到你。

【讨论】:

    猜你喜欢
    • 2018-01-30
    • 1970-01-01
    • 2021-12-08
    • 2013-07-29
    • 2014-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多