diff --git a/apps/jingrow/frontend/vite.config.ts b/apps/jingrow/frontend/vite.config.ts index 09581f5..14a1257 100644 --- a/apps/jingrow/frontend/vite.config.ts +++ b/apps/jingrow/frontend/vite.config.ts @@ -8,6 +8,20 @@ import Components from 'unplugin-vue-components/vite' import fs from 'node:fs' import path from 'node:path' +// 统一处理后端 Set-Cookie,移除 Secure 标志,便于在 HTTP 开发环境保存 Cookie +const cookieRewriteConfigure = (proxy: any) => { + proxy.on('proxyRes', (proxyRes: any) => { + const setCookieHeaders = proxyRes.headers['set-cookie'] + if (setCookieHeaders) { + proxyRes.headers['set-cookie'] = setCookieHeaders.map((cookie: string) => { + return cookie + .replace(/;\s*[Ss]ecure/gi, '') + .replace(/,\s*[Ss]ecure/gi, '') + }) + } + }) +} + // 读取 apps.txt 确定应用优先级(靠后优先) function loadAppsOrder(appsDir: string) { const appsTxt = path.join(appsDir, 'apps.txt') @@ -79,17 +93,7 @@ export default defineConfig(({ mode }) => { 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, '') - }) - } - }) - } + configure: cookieRewriteConfigure }, '/api/data': { target: BACKEND_URL, @@ -97,16 +101,7 @@ export default defineConfig(({ mode }) => { 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, '') - }) - } - }) - } + configure: cookieRewriteConfigure }, '/jingrow': { target: BACKEND_URL, @@ -114,16 +109,7 @@ export default defineConfig(({ mode }) => { 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, '') - }) - } - }) - } + configure: cookieRewriteConfigure } } },