需要获取授权令牌才能访问我在 localhost 上运行的应用程序。我在 UseSwaggerUi3 中查询来自 Swagger OAuth2 客户端的令牌的 AAD 令牌端点。我收到端点不允许来自本地主机的跨源请求的 CORS 错误。我怎样才能解决这个问题?
[编辑] 如果我使用 Fiddler 向同一端点发送 POST 请求,我就能够获取令牌。
需要获取授权令牌才能访问我在 localhost 上运行的应用程序。我在 UseSwaggerUi3 中查询来自 Swagger OAuth2 客户端的令牌的 AAD 令牌端点。我收到端点不允许来自本地主机的跨源请求的 CORS 错误。我怎样才能解决这个问题?
[编辑] 如果我使用 Fiddler 向同一端点发送 POST 请求,我就能够获取令牌。
您不能使用来自前端的客户端凭据流。首先,因为您的秘密对任何看到该页面的人都是可见的。
其次,因为 Azure AD 阻止了对其令牌端点的跨源请求。(如你所见)
您需要在用户上下文中使用授权代码或隐式流。或者构建另一个 API,它在后端获取令牌并用它调用另一个 API。
CORS 是跨源资源,它将允许在 2 个不同源上工作的两个不同 Web 应用程序相互通信。启用 cors 有两种方法 1) 转到 azure - Web 应用程序 - 设置列搜索 - cors。2) 将新的 cors 标头添加为“*”,这意味着它将允许所有请求 Web 应用程序的 url,您还提供特定的一个 url。3)保存它。4) 第二种方法是在 web 配置标头中允许您的代码中的 cors 标头。