问题描述
我的API调用(Asp.Net WebAPI和Angular)遇到令人沮丧的问题。我使用承载令牌授权来授权请求。当我从Postman向API发出请求时,它返回200 Ok,但是当我从浏览器(Angular)中尝试时,我得到401 Unauthorized。
如果我在控制器操作的顶部使用[AllowAnonymous]
属性,可以使它正常工作,但是出于安全原因,我想保留[Authorize]
属性。
我不确定是什么导致了此错误。 这是来自浏览器的请求标头的屏幕截图。如您所见,它还包括有效的承载令牌。有趣的是,Authorize属性可用于控制器中的其他操作。
https://i.stack.imgur.com/K5OB1.png
谢谢。
解决方法
我正在回答自己的问题,因为我找到了发生此问题的原因。我向发布在Azure App Service上的API发出了令牌请求,并尝试在我的localhost API中使用该令牌。不知何故,这导致了问题。通过邮递员向localhost API发出请求时,我使用从localhost API收到的令牌。因此,使用来自localhost API的令牌可以解决此问题。