Angular 401和有效的熊市代币,会出什么问题?

Angular 401和有效的熊市代币,会出什么问题?,angular,.net-core,azure-active-directory,bearer-token,Angular,.net Core,Azure Active Directory,Bearer Token,我应该调查什么来发现/追踪这样的问题: 我们有一个Angular应用程序调用.Net核心Web API,启用CORS,并通过Azure AD进行身份验证,获得承载令牌。使用承载令牌,API调用会失败,有时401次未经授权,有时200次。然而,我将相同的承载令牌放入任何REST客户端,API调用始终有效 非常感谢任何意见 更多的上下文/分析: API与其他应用程序配合良好。所以如果问题还在继续 在服务器端,它不是代码中经常执行的部分。这个 问题可能出现在客户端代码中 这个有角度的应用程序是 唯一

我应该调查什么来发现/追踪这样的问题:

我们有一个Angular应用程序调用.Net核心Web API,启用CORS,并通过Azure AD进行身份验证,获得承载令牌。使用承载令牌,API调用会失败,有时401次未经授权,有时200次。然而,我将相同的承载令牌放入任何REST客户端,API调用始终有效

非常感谢任何意见

更多的上下文/分析:

  • API与其他应用程序配合良好。所以如果问题还在继续 在服务器端,它不是代码中经常执行的部分。这个 问题可能出现在客户端代码中
  • 这个有角度的应用程序是 唯一使用CORS的应用程序。这显然是我正在调查的事情

  • 此Angular应用程序的本地开发服务器(Webpack dev Server)和部署服务器(IIS)不同,但会产生 结果相同,因此可能不是服务器配置问题

  • 比较200响应和401请求,我发现承载令牌在这两个方面都起作用
  • 比较200响应和401响应,我看到header COR在这两个方面都起作用
  • 由于它给出了401,并且似乎没有实际到达Web API中,因此它与身份验证有关。但我对这个过程知之甚少。有什么见解吗
    • 我想出来了。 比赛条件。承载令牌在尝试检索时还不可用。 当我在REST客户机中手动执行API调用时,令牌已可用。只有当我有一些后续的API调用,不管第一个调用是什么,我才能更快地发现这个问题

      一个简单的超时将证明它是有效的


      我们将优化承载令牌存储和一些缓存管理,以获得永久解决方案。

      如果您可以发布200和401请求的请求和响应头,这将非常有用。这不一定是身份验证错误-可能是CORS。CORS故障将导致401。