Skip to content

Commit 343f688

Browse files
authored
Merge pull request #1496 from lowcoder-org/fix/cors
Fixed cors issues by adding custom CorsOptions
2 parents 7ee5a7b + b9f94ad commit 343f688

File tree

3 files changed

+44
-17
lines changed

3 files changed

+44
-17
lines changed

server/node-service/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
"@google-cloud/bigquery": "^6.1.0",
4141
"@google-cloud/storage": "^6.10.1",
4242
"@supabase/supabase-js": "^2.26.0",
43+
"@types/cors": "^2.8.17",
4344
"@types/express": "^4.17.14",
4445
"@types/jsonpath": "^0.2.0",
4546
"@types/lodash": "^4.14.190",
@@ -50,6 +51,7 @@
5051
"axios": "^1.7.9",
5152
"base64-arraybuffer": "^1.0.2",
5253
"bluebird": "^3.7.2",
54+
"cors": "^2.8.5",
5355
"duckdb-async": "^1.1.3",
5456
"dynamodb-data-types": "^4.0.1",
5557
"express": "^4.21.0",

server/node-service/src/server.ts

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import morgan from "morgan";
88
import { collectDefaultMetrics } from "prom-client";
99
import apiRouter from "./routes/apiRouter";
1010
import systemRouter from "./routes/systemRouter";
11+
import cors, { CorsOptions } from "cors";
1112
collectDefaultMetrics();
1213

1314
const prefix = "/node-service";
@@ -39,21 +40,24 @@ router.use(
3940
);
4041

4142
/** RULES OF OUR API */
42-
router.use((req, res, next) => {
43-
// set the CORS policy
44-
res.header("Access-Control-Allow-Origin", "*");
45-
// set the CORS headers
46-
res.header(
47-
"Access-Control-Allow-Headers",
48-
"origin, X-Requested-With,Content-Type,Accept, Authorization"
49-
);
50-
// set the CORS method headers
51-
if (req.method === "OPTIONS") {
52-
res.header("Access-Control-Allow-Methods", "GET,PATCH,DELETE,POST");
53-
return res.status(200).json({});
54-
}
55-
next();
56-
});
43+
44+
const corsOptions: CorsOptions = {
45+
origin: (origin: string | undefined, callback: any) => {
46+
callback(null, true);
47+
},
48+
credentials: true,
49+
allowedHeaders: [
50+
'origin',
51+
'X-Requested-With',
52+
'Lowcoder-Ce-Selfhost-Token',
53+
'Authorization',
54+
'Accept',
55+
'Content-Type'
56+
],
57+
methods: ['GET', 'POST', 'PUT', 'DELETE', 'PATCH']
58+
};
59+
60+
router.use(cors(corsOptions));
5761

5862
/** Routes */
5963
router.use(`${prefix}/api`, apiRouter);

server/node-service/yarn.lock

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4545,6 +4545,15 @@ __metadata:
45454545
languageName: node
45464546
linkType: hard
45474547

4548+
"@types/cors@npm:^2.8.17":
4549+
version: 2.8.17
4550+
resolution: "@types/cors@npm:2.8.17"
4551+
dependencies:
4552+
"@types/node": "*"
4553+
checksum: 469bd85e29a35977099a3745c78e489916011169a664e97c4c3d6538143b0a16e4cc72b05b407dc008df3892ed7bf595f9b7c0f1f4680e169565ee9d64966bde
4554+
languageName: node
4555+
linkType: hard
4556+
45484557
"@types/estree@npm:*, @types/estree@npm:^1.0.0":
45494558
version: 1.0.6
45504559
resolution: "@types/estree@npm:1.0.6"
@@ -5838,6 +5847,16 @@ __metadata:
58385847
languageName: node
58395848
linkType: hard
58405849

5850+
"cors@npm:^2.8.5":
5851+
version: 2.8.5
5852+
resolution: "cors@npm:2.8.5"
5853+
dependencies:
5854+
object-assign: ^4
5855+
vary: ^1
5856+
checksum: ced838404ccd184f61ab4fdc5847035b681c90db7ac17e428f3d81d69e2989d2b680cc254da0e2554f5ed4f8a341820a1ce3d1c16b499f6e2f47a1b9b07b5006
5857+
languageName: node
5858+
linkType: hard
5859+
58415860
"create-jest@npm:^29.7.0":
58425861
version: 29.7.0
58435862
resolution: "create-jest@npm:29.7.0"
@@ -8519,6 +8538,7 @@ __metadata:
85198538
"@google-cloud/storage": ^6.10.1
85208539
"@supabase/supabase-js": ^2.26.0
85218540
"@types/ali-oss": ^6.16.11
8541+
"@types/cors": ^2.8.17
85228542
"@types/express": ^4.17.14
85238543
"@types/jest": ^29.2.4
85248544
"@types/jsonpath": ^0.2.0
@@ -8532,6 +8552,7 @@ __metadata:
85328552
bluebird: ^3.7.2
85338553
commander: ^10.0.0
85348554
copyfiles: ^2.4.1
8555+
cors: ^2.8.5
85358556
duckdb-async: ^1.1.3
85368557
dynamodb-data-types: ^4.0.1
85378558
express: ^4.21.0
@@ -9383,7 +9404,7 @@ __metadata:
93839404
languageName: node
93849405
linkType: hard
93859406

9386-
"object-assign@npm:^4.0.1, object-assign@npm:^4.1.1":
9407+
"object-assign@npm:^4, object-assign@npm:^4.0.1, object-assign@npm:^4.1.1":
93879408
version: 4.1.1
93889409
resolution: "object-assign@npm:4.1.1"
93899410
checksum: fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f
@@ -11372,7 +11393,7 @@ __metadata:
1137211393
languageName: node
1137311394
linkType: hard
1137411395

11375-
"vary@npm:~1.1.2":
11396+
"vary@npm:^1, vary@npm:~1.1.2":
1137611397
version: 1.1.2
1137711398
resolution: "vary@npm:1.1.2"
1137811399
checksum: ae0123222c6df65b437669d63dfa8c36cee20a504101b2fcd97b8bf76f91259c17f9f2b4d70a1e3c6bbcee7f51b28392833adb6b2770b23b01abec84e369660b

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy