如何解决:WSO2 身份服务器服务提供商上的 SAML2 SSO 上的 CORS 问题?



我用SAML2 Web SSO创建了一个服务提供程序。

我有一个应用程序,其中 Node JS 服务器和 React Js 前端在单独的端口 3000(节点(和 3001(反应(上运行。

节点上有一个路由"http://localhost:3000/app/login",如果用户未经过身份验证(身份验证由 cookie 管理(,则会重定向到 sso 登录页面。

但是,如果我尝试从前端调用 api,则会出现以下 CORS 问题:

CORS 策略已阻止从源"http://localhost:3001"访问"此处"(从"http://localhost:3000/app"重定向(:请求的资源上不存在"访问控制-允许源"标头。如果不透明响应满足您的需求,请将请求的模式设置为"no-cors",以便在禁用 CORS 的情况下获取资源。

我也尝试了这个解决方案,但没有成功。

我在 web中使用 express 作为框架的 web 应用程序中遇到了此错误 然后我安装了 npm cors 节点中可用的 cors 包.js 并在我的服务器端脚本中使用它。

var express = require('express')
var cors = require('cors')
var app = express()
app.use(cors())

似乎是您在尝试访问/samlsso 时遇到问题。在文件中启用org.apache.catalina.filters.CorsFilter过滤器repository/conf/tomcat/carbon/WEB-INF/web.xml如Tomcat文档中所述

如果要为身份服务器中托管的任何其他 Web 应用程序(例如/authenticationendpoint/oauth2(启用 CORS 标头,则还必须在这些 Web 应用程序的 Web 文件中执行相同的操作.xml这些文件(对于身份验证终结点 Web 应用程序,路径为repository/deployment/server/webapps/authenticationendpoint/WEB-INF/web.xml(。

最新更新