Ish*_*Ish 7 proxy reactjs webpack-dev-server webpack-dev-middleware
我们已经使用 webpack-dev-server 设置了我们的开发环境。我们使用其代理配置与后端通信。
我们在所有应用程序中使用的服务器中有一个通用登录页面。我们被调用,它设置了一个会话 cookie,期望与后续请求一起传递。我们使用了以下配置,但由于某种原因未在浏览器中设置 cookie。我可以在开发工具的网络选项卡的响应标头中看到它。
const config = {
devServer: {
index: "/",
proxy: {
"/rest_end_point/page": {
target: "https://middleware_server",
secure : false
},
"/": {
target: "https://middleware_server/app/login",
secure : false
},
}
Run Code Online (Sandbox Code Playgroud)
在https://开头middleware_server /应用/登录端点与Set-cookie头返回登录页面。
代理用于在访问登录页面和 API 调用时避免 CORS 错误。
到目前为止,还没有执行来自应用程序的代码。我们是否必须在 coomon 登录页面中执行某些操作才能设置 cookie?
该应用程序是用 React 编写的。
任何帮助,将不胜感激。
我有相同的用例,这就是我所做的。
就我而言,我有多个代理目标,因此我相应地配置了 JSON ( ProxySession.json )。
注意:这种方法不是动态的。您需要为代理请求手动获取 JSESSIONID(会话 ID)。
登录到您希望应用程序代理的应用程序。获取 JSESSIONID 并将其添加到 JSON 文件中或直接在
onProxyReq
函数中替换,然后运行您的开发服务器。
例子:
webpack-dev.js
// Webpack-dev.js
const ProxySession = require("./ProxySession");
config = {
output: {..........},
plugins: [.......],
resolve: {......},
module: {
rules: [......]
},
devServer: {
port: 8088,
host: "0.0.0.0",
disableHostCheck: true,
proxy: {
"/service/**": {
target: ProxySession.proxyTarget,
changeOrigin: true,
onProxyReq: function(proxyReq) {
proxyReq.setHeader("Cookie", "JSESSIONID=" + ProxySession[buildType].JSESSIONID + ";msa=" + ProxySession[buildType].msa + ";msa_rmc=" + ProxySession[buildType].msa_rmc + ";msa_rmc_disabled=" + ProxySession[buildType].msa_rmc);
}
},
"/j_spring_security_check": {
target: ProxySession.proxyTarget,
changeOrigin: true
},
"/app_service/websock/**": {
target: ProxySession.proxyTarget,
changeOrigin: true,
onProxyReq: function(proxyReq) {
proxyReq.setHeader("Cookie", "JSESSIONID=" + ProxySession[buildType].JSESSIONID + ";msa=" + ProxySession[buildType].msa + ";msa_rmc=" + ProxySession[buildType].msa_rmc + ";msa_rmc_disabled=" + ProxySession[buildType].msa_rmc);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
代理会话.json
//ProxySession.json
{
"proxyTarget": "https://t.novare.me/",
"build-type-1": {
"JSESSIONID": "....",
"msa": "....",
"msa_rmc": ...."
},
"build-type-2": {
"JSESSIONID": ".....",
"msa": ".....",
"msa_rmc":"....."
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8977 次 |
最近记录: |