Angular 401和有效的熊市代币,会出什么问题?
我应该调查什么来发现/追踪这样的问题: 我们有一个Angular应用程序调用.Net核心Web API,启用CORS,并通过Azure AD进行身份验证,获得承载令牌。使用承载令牌,API调用会失败,有时401次未经授权,有时200次。然而,我将相同的承载令牌放入任何REST客户端,API调用始终有效 非常感谢任何意见 更多的上下文/分析: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与其他应用程序配合良好。所以如果问题还在继续 在服务器端,它不是代码中经常执行的部分。这个 问题可能出现在客户端代码中 这个有角度的应用程序是 唯一
- API与其他应用程序配合良好。所以如果问题还在继续 在服务器端,它不是代码中经常执行的部分。这个 问题可能出现在客户端代码中
- 这个有角度的应用程序是 唯一使用CORS的应用程序。这显然是我正在调查的事情
- 此Angular应用程序的本地开发服务器(Webpack dev Server)和部署服务器(IIS)不同,但会产生 结果相同,因此可能不是服务器配置问题
- 比较200响应和401请求,我发现承载令牌在这两个方面都起作用
- 比较200响应和401响应,我看到header COR在这两个方面都起作用
- 由于它给出了401,并且似乎没有实际到达Web API中,因此它与身份验证有关。但我对这个过程知之甚少。有什么见解吗
- 我想出来了。
比赛条件。承载令牌在尝试检索时还不可用。
当我在REST客户机中手动执行API调用时,令牌已可用。只有当我有一些后续的API调用,不管第一个调用是什么,我才能更快地发现这个问题
一个简单的超时将证明它是有效的
我们将优化承载令牌存储和一些缓存管理,以获得永久解决方案。如果您可以发布200和401请求的请求和响应头,这将非常有用。这不一定是身份验证错误-可能是CORS。CORS故障将导致401。