如何调试承载错误=“invalid_token”

问题描述 投票:0回答:2

我们正在构建一个具有 SPA 前端和 API 后端的应用程序。

我们使用 MSAL 身份验证库,前端和后端在 Azure AD 中注册为应用程序。

我们收到 HTTP 401 错误。

为了尝试调试问题,我们从 SPA 应用程序中获取了令牌,并将其放入 jwt.io 中,看起来不错。我们还尝试使用不记名令牌从邮递员发送请求。还是同样的问题。

有没有办法查出token在什么情况下是无效的?

azure authentication azure-active-directory asp.net-core-webapi azure-ad-msal
2个回答
8
投票

要获得令牌不被接受的一些线索的简单检查是在 AddJwtBearer 中将此标志设置为 true:

.AddJwtBearer(opt =>
{
    opt.IncludeErrorDetails = true;
    ...

这样做,将在 WWW-Authenticate 响应标头中包含拒绝的原因:

HTTP/1.1 401 Unauthorized
Date: Sun, 02 Aug 2020 11:19:06 GMT
WWW-Authenticate: Bearer error="invalid_token", error_description="The signature is invalid"

第二步是检查来自 AddJwtBearer 处理程序的日志。

为了补充这个答案,我写了一篇博客文章,详细介绍了这个主题: 排查 ASP.NET Core 中的 JwtBearer 身份验证问题


0
投票

经过多次尝试和错误,我找到了解决方案,实际上是问题,问题是我以不正确的形式发送令牌,我通过表单承载“令牌”发送令牌,直到我删除“”为止,这才起作用。

© www.soinside.com 2019 - 2024. All rights reserved.