【问题标题】:Getting 401 Unauthorized after a preflight OPTION call在预检 OPTION 调用后获得 401 Unauthorized
【发布时间】:2018-07-08 18:15:11
【问题描述】:

我有一个 angular4 应用程序,它与不同域上的 Web API 项目通信。如果我不向 API 添加 [Authorize] 属性,API 调用就可以正常工作。

但是一旦我添加了 [Authorize] 属性,并且相应地,当我实现在 Angular4 中拦截所有 API 调用并添加 Okta Bearer Authorization 标头令牌的能力时,我注意到发生了预检 OPTION 调用并返回 200 OK。紧接着,它进行了 GET API 调用,但返回 401。我已在图像中附加了标题。

【问题讨论】:

  • 您是说一旦包含Authorization 标头,您的调用就不再有效?如果您删除它,它们会起作用吗?如果是这样,为什么不直接删除这些 API 调用的标头?
  • 我需要授权 API。不,如果我没有通过授权,它根本不起作用。这是预期的。我的猜测与 CORS 有关,但我不完全确定。我已验证我的 CORS 设置正确且有效(当我没有启用身份验证时)
  • @J.Doe 在我看来,Authorization 标头已附加到 OPTIONS 请求,而不是随后的 GET 请求。您可以检查您的网络控制台并查看每个请求的标头详细信息以进行验证吗?

标签: asp.net angular cors okta


【解决方案1】:

在您的令牌验证中应该有一个允许的来源策略。我不熟悉 Okta 作为令牌服务器,但在站点中搜索并找到 this,看看它是否有帮助。

【讨论】:

    猜你喜欢
    • 2019-10-07
    • 1970-01-01
    • 2018-11-10
    • 1970-01-01
    • 2011-01-18
    • 2020-10-20
    • 1970-01-01
    • 1970-01-01
    • 2014-04-06
    相关资源
    最近更新 更多