Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度-CORS原点-外部标识服务器4实例_Angular_Google Chrome_Cors_Identityserver4 - Fatal编程技术网

Angular 角度-CORS原点-外部标识服务器4实例

Angular 角度-CORS原点-外部标识服务器4实例,angular,google-chrome,cors,identityserver4,Angular,Google Chrome,Cors,Identityserver4,我正在试图找出,对于任何在本地开发Angular应用程序的人来说,在不违反CORS规则的情况下连接到外部托管的Identity Server实例的最佳方式是什么,因为Chrome所使用的不是Identity Server 我想我们可以使用proxy.config并将其与节点一起托管,以便它将localhost:4200/dev/identity重定向到托管的identity Server实例。但这并不是那么简单,它是一个发现文档,然后是几个重定向 这是一个非常常见的场景,但我在网上找不到任何东西

我正在试图找出,对于任何在本地开发Angular应用程序的人来说,在不违反CORS规则的情况下连接到外部托管的Identity Server实例的最佳方式是什么,因为Chrome所使用的不是Identity Server

我想我们可以使用proxy.config并将其与节点一起托管,以便它将localhost:4200/dev/identity重定向到托管的identity Server实例。但这并不是那么简单,它是一个发现文档,然后是几个重定向

这是一个非常常见的场景,但我在网上找不到任何东西,这告诉我我要么做错了,要么有一个简单得多的解决方案。有人能给我指出正确的方向吗?或者有一个类似的代理文件,它可以命中所有已知的端点

仅供参考这里是我的proxy.config

{
  "dev/identity": {
    "target": {
      "host": "ids-cloud.com",
      "protocol": "https:",
      "port": 443
    },
    "secure": false,
    "changeOrigin": true,
    "logLevel": "info"
  },
  "/dev/identity/.well-known/openid-configuration": {
    "target": {
      "host": "ids-cloud.com",
      "protocol": "https:",
      "port": 443
    },
    "secure": false,
    "changeOrigin": true,
    "logLevel": "info"
  },
  "*": {
    "target": "http://localhost:5000",
    "secure": false,
    "logLevel": "debug",
    "changeOrigin": true
  }
}

最后一个*用于向我的API发送调用。

带有节点的proxy.config是个好主意,我就是这样做的,但不需要重定向。使用https调用identity server并将其响应返回给angular。

最后,我发现最好的方法是让服务器为我们的开发环境返回一个跨源标头

当angular客户端应用程序调用时,服务器返回一个阻止Chrome抱怨CORS的标题。在这种情况下,我不需要代理类,所有开发人员都可以使用同一个dev实例


您可以通过应用服务CORS选项在Azure中实现这一点,或者如果您愿意,您可以将其作为API中启动的一部分进行开发。

感谢您回来。我将在下面记录我是如何做到这一点的!