Skip to content

Commit b9f94ad

Browse files
committed
Fixed cors issues by adding custom CorsOptions
1 parent 29de1f6 commit b9f94ad

File tree

3 files changed

+44
-17
lines changed

3 files changed

+44
-17
lines changed

server/node-service/package.json

+2
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

+19-15
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

+23-2
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)