From 756e3c165703953baf72bbedb10ccc90d1cd62cd Mon Sep 17 00:00:00 2001 From: jingrow Date: Tue, 4 Nov 2025 00:33:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0vite=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E5=A4=8D=E5=89=8D=E7=AB=AF=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E5=90=8E=E6=97=A0=E6=B3=95=E6=AD=A3=E7=A1=AE=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=90=8D=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/jingrow/frontend/vite.config.ts | 45 ++++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 3 deletions(-) diff --git a/apps/jingrow/frontend/vite.config.ts b/apps/jingrow/frontend/vite.config.ts index 3d78078..09581f5 100644 --- a/apps/jingrow/frontend/vite.config.ts +++ b/apps/jingrow/frontend/vite.config.ts @@ -74,17 +74,56 @@ export default defineConfig(({ mode }) => { '/api/action': { target: JINGROW_SERVER_URL, changeOrigin: true, - secure: false + secure: false, + // 确保后端 Set-Cookie 的域与路径被重写为当前前端域名与根路径,便于浏览器保存 sid/user_id + cookieDomainRewrite: { '*': '' }, + cookiePathRewrite: { '*': '/' }, + // 移除 Cookie 的 Secure 标志,因为前端可能是 HTTP 访问 + configure: (proxy, options) => { + proxy.on('proxyRes', (proxyRes, req, res) => { + const setCookieHeaders = proxyRes.headers['set-cookie'] + if (setCookieHeaders) { + // 移除所有 Set-Cookie 中的 Secure 标志 + proxyRes.headers['set-cookie'] = setCookieHeaders.map(cookie => { + return cookie.replace(/;\s*[Ss]ecure/gi, '').replace(/,\s*[Ss]ecure/gi, '') + }) + } + }) + } }, '/api/data': { target: BACKEND_URL, changeOrigin: true, - secure: false + secure: false, + cookieDomainRewrite: { '*': '' }, + cookiePathRewrite: { '*': '/' }, + configure: (proxy, options) => { + proxy.on('proxyRes', (proxyRes, req, res) => { + const setCookieHeaders = proxyRes.headers['set-cookie'] + if (setCookieHeaders) { + proxyRes.headers['set-cookie'] = setCookieHeaders.map(cookie => { + return cookie.replace(/;\s*[Ss]ecure/gi, '').replace(/,\s*[Ss]ecure/gi, '') + }) + } + }) + } }, '/jingrow': { target: BACKEND_URL, changeOrigin: true, - secure: false + secure: false, + cookieDomainRewrite: { '*': '' }, + cookiePathRewrite: { '*': '/' }, + configure: (proxy, options) => { + proxy.on('proxyRes', (proxyRes, req, res) => { + const setCookieHeaders = proxyRes.headers['set-cookie'] + if (setCookieHeaders) { + proxyRes.headers['set-cookie'] = setCookieHeaders.map(cookie => { + return cookie.replace(/;\s*[Ss]ecure/gi, '').replace(/,\s*[Ss]ecure/gi, '') + }) + } + }) + } } } },