feat: Node.js 前端代理后端路由 需设置环境变量 注意安全 SUB_STORE_FRONTEND_BACKEND_PATH=/prefix

This commit is contained in:
xream 2023-12-13 01:26:16 +08:00
parent 8f2dbfe3df
commit c35e9d37ae
No known key found for this signature in database
GPG Key ID: 1D2C5225471789F9
2 changed files with 12 additions and 6 deletions

View File

@ -1,6 +1,6 @@
{
"name": "sub-store",
"version": "2.14.124",
"version": "2.14.125",
"description": "Advanced Subscription Manager for QX, Loon, Surge, Stash and ShadowRocket.",
"main": "src/main.js",
"scripts": {

View File

@ -71,15 +71,21 @@ export default function serve() {
let be_rewrite = '';
let be_api = '/api/';
if (fe_be_path) {
be_rewrite = `${fe_be_path}/api/`;
if (!fe_be_path.startsWith('/')) {
throw new Error(
'SUB_STORE_FRONTEND_BACKEND_PATH should start with /',
);
}
be_rewrite = `${fe_be_path === '/' ? '' : fe_be_path}${be_api}`;
app.use(
fe_be_path,
be_rewrite,
createProxyMiddleware({
target: `http://127.0.0.1:${port}`,
changeOrigin: true,
ws: true,
pathRewrite: {
[`^${be_rewrite}`]: be_api,
pathRewrite: (path) => {
return path.startsWith(be_rewrite)
? path.replace(be_rewrite, be_api)
: path;
},
}),
);