允许 SPA 和 REST API 之间使用 IAP 进行通信

问题描述

目前 GKE my-app-frontendmy-app-backend 上有两个部署,均通过入口访问并受 IAP 保护。 my-app-backend 还启用了 CORS。当 my-app-frontend 托管在 my-app.com 向托管在 my-app-backendapi.my-app.com 发出请求时,由于 CORS 错误Cross-Origin Resource Sharing error: MissingallowOriginHeader,它被阻止。我正在寻找一种将 my-app-frontendmy-app-backend 保留在不同主机上并且不涉及代码更改的解决方案。

相同的设置适用于 Cloudflare Access,因为您可以添加 my-app.comapi.my-app.com 作为受信任的来源,它会向响应添加 access-control-allow-origin 标头,但我想保留它在 CGP 生态系统中。

预期结果: my-app-backend 应该能够在托管在不同域(my-app-frontend -> my-app-backendapi.my-app.com -> my-app-frontend ) 并且不应涉及代码更改以检查/添加 my-app.com 上的标头。

到目前为止我尝试过的:

  • my-app-backend 设置中启用 HTTP 选项,以便不需要预检请求的身份验证标头。
  • 在 Auth 2.0 客户端 ID 设置中添加my-app-backendmy-app.com 作为授权的 JavaScript 来源。
  • 在同一个api.my-app.com -> my-app-backendmy-app.com/api -> my-app-frontend 上托管两个部署,这种方法有效,但这不是我想要的希望将它们保留在不同的域中。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...