【发布时间】:2020-08-24 04:53:13
【问题描述】:
我的 API 调用(Asp.Net WebAPI 和 Angular)有一个令人沮丧的问题。我使用不记名令牌授权来授权请求。当我从 Postman 向 API 发出请求时,它返回 200 Ok 但是当我从浏览器(Angular)尝试它时,我得到 401 Unauthorized。
如果我在控制器操作之上使用[AllowAnonymous] 属性,我可以让它工作,但出于安全原因,我想保留[Authorize] 属性。
我不确定是什么导致了这个错误。 这是来自浏览器的请求标头的屏幕截图。如您所见,它还包括有效的不记名令牌。有趣的是 Authorize 属性适用于我的控制器中的其他操作。
https://i.stack.imgur.com/K5OB1.png
提前谢谢你。
【问题讨论】:
-
是 webapp 请求附带的令牌吗?检查 chrome 调试器中的网络选项卡
-
401基本上意味着服务器在请求标头中期待一个授权字段并且无法看到一个或提供的授权详细信息不正确。在 Postman 上验证是否有随请求一起发送的任何授权字段,并相应地为浏览器更正它。 -
是的,不记名令牌包含在标头中我已经放了请求标头的屏幕截图。我只是尝试从客户端生成一个令牌并在邮递员中使用生成的令牌,我收到 401 错误。但是当我从邮递员那里生成一个令牌时,我可以获得 200 ok 状态
-
另外,当我在 Azure 应用服务中发布 Web API 时,它可以工作。
-
@Volvo 这听起来确实像浏览器问题。您在其他浏览器和/或隐身模式下是否也遇到同样的情况?
标签: angular asp.net-web-api authorization postman bearer-token