【发布时间】: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 <JWT Token just generated> 的值。
响应为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