From d5293b4db6ae64705885877b3d1f27038df3366a Mon Sep 17 00:00:00 2001 From: yrfriend Date: Sat, 10 Jul 2021 13:11:00 +0300 Subject: [PATCH] Fixed cors issue --- api/package-lock.json | 38 +++++++++++++++++++++++++++++++++++++- api/package.json | 1 + api/src/api/v2.js | 13 +++++++++++++ 3 files changed, 51 insertions(+), 1 deletion(-) diff --git a/api/package-lock.json b/api/package-lock.json index c46ae87..fec6310 100644 --- a/api/package-lock.json +++ b/api/package-lock.json @@ -11,6 +11,7 @@ "dependencies": { "body-parser": "^1.19.0", "chownr": "^2.0.0", + "cors": "^2.8.5", "express": "^4.17.1", "is-docker": "^2.1.1", "logplease": "^1.2.15", @@ -109,6 +110,18 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -370,6 +383,14 @@ "node": "4.x || >=6.0.0" } }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", @@ -580,7 +601,8 @@ } }, "node_modules/waitpid": { - "resolved": "git+ssh://git@github.com/HexF/node-waitpid.git#a08d116a5d993a747624fe72ff890167be8c34aa" + "resolved": "git+ssh://git@github.com/HexF/node-waitpid.git#a08d116a5d993a747624fe72ff890167be8c34aa", + "hasInstallScript": true }, "node_modules/yallist": { "version": "4.0.0", @@ -653,6 +675,15 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -852,6 +883,11 @@ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", diff --git a/api/package.json b/api/package.json index ab34063..da99659 100644 --- a/api/package.json +++ b/api/package.json @@ -6,6 +6,7 @@ "dependencies": { "body-parser": "^1.19.0", "chownr": "^2.0.0", + "cors": "^2.8.5", "express": "^4.17.1", "is-docker": "^2.1.1", "logplease": "^1.2.15", diff --git a/api/src/api/v2.js b/api/src/api/v2.js index 948dccf..5eadce6 100644 --- a/api/src/api/v2.js +++ b/api/src/api/v2.js @@ -6,6 +6,19 @@ const runtime = require('../runtime'); const { Job } = require('../job'); const package = require('../package'); const logger = require('logplease').create('api/v2'); +const cors = require('cors'); + +const corsOptions = { + origin: "*", + methods: + "GET,HEAD,PUT,PATCH,POST,DELETE", + allowedHeaders: + "Access-Control-Allow-Headers,Access-Control-Allow-Origin,Access-Control-Request-Method,Access-Control-Request-Headers,Origin,Cache-Control,Content-Type,X-Token,X-Refresh-Token", + credentials: true, + preflightContinue: false, + optionsSuccessStatus: 204 +}; +router.use(cors(corsOptions)) router.use((req, res, next) => { if (['GET', 'HEAD', 'OPTIONS'].includes(req.method)) {