diff --git a/package-lock.json b/package-lock.json index a7bb0fc..682fef0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,13 +1,14 @@ { "name": "subsonics-web", - "version": "0.2.0", + "version": "0.2.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "subsonics-web", - "version": "0.2.0", + "version": "0.2.2", "dependencies": { + "cookie": "^0.5.0", "cookie-parser": "^1.4.6", "discord.js": "^14.9.0", "ejs": "^3.1.9", @@ -433,9 +434,9 @@ } }, "node_modules/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", "engines": { "node": ">= 0.6" } @@ -452,6 +453,14 @@ "node": ">= 0.8.0" } }, + "node_modules/cookie-parser/node_modules/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", @@ -578,6 +587,14 @@ "node": ">=10.0.0" } }, + "node_modules/engine.io/node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/engine.io/node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -687,14 +704,6 @@ "node": ">= 0.10.0" } }, - "node_modules/express/node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -2038,9 +2047,9 @@ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==" }, "cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" }, "cookie-parser": { "version": "1.4.6", @@ -2049,6 +2058,13 @@ "requires": { "cookie": "0.4.1", "cookie-signature": "1.0.6" + }, + "dependencies": { + "cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" + } } }, "cookie-signature": { @@ -2144,6 +2160,11 @@ "ws": "~8.11.0" }, "dependencies": { + "cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==" + }, "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -2227,13 +2248,6 @@ "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" - }, - "dependencies": { - "cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" - } } }, "fast-deep-equal": { diff --git a/package.json b/package.json index da419c2..635e724 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "subsonics-web", "author": "Raphix", - "version": "0.2.1", + "version": "0.2.2", "nodemonConfig": { "ext": "js, html", "ignore": [ @@ -12,6 +12,7 @@ "delay": "2000000" }, "dependencies": { + "cookie": "^0.5.0", "cookie-parser": "^1.4.6", "discord.js": "^14.9.0", "ejs": "^3.1.9", diff --git a/src/modules/sub-web.js b/src/modules/sub-web.js index ecba66e..19f44aa 100644 --- a/src/modules/sub-web.js +++ b/src/modules/sub-web.js @@ -3,8 +3,7 @@ const { __glob, __web } = require("../modules/global-variables"); const { LogType } = require("./sub-log"); const log = require("./sub-log"); const auth = require("./sub-auth"); -const cookieParser = require("cookie-parser"); -const { error } = require("console"); +const cook = require("cookie") const wlog = new LogType("Web") module.exports.WebServer = class { @@ -70,7 +69,32 @@ function init() { }); server.listen(port); - server.on('error', onError(error, port)); + server.on('error', (error) => { + if (error.syscall !== 'listen') { + throw error; + } + + let bind = typeof port === 'string' + ? 'Pipe ' + port + : 'Port ' + port; + + // Handle specific listen errors with + // friendly messages + switch (error.code) { + case 'EACCES': + console.error(bind + + ' requires elevated privileges'); + process.exit(1); + break; + case 'EADDRINUSE': + console.error(bind + ' is already in use'); + process.exit(1); + break; + default: + throw error; + } + + }); server.on('listening', () => { let addr = server.address(); @@ -104,32 +128,6 @@ function normalizePort(val) { return false; } -// Event listener for HTTP server "error" event -function onError(error, port) { - if (error.syscall !== 'listen') { - throw error; - } - - let bind = typeof port === 'string' - ? 'Pipe ' + port - : 'Port ' + port; - - // Handle specific listen errors with - // friendly messages - switch (error.code) { - case 'EACCES': - console.error(bind - + ' requires elevated privileges'); - process.exit(1); - break; - case 'EADDRINUSE': - console.error(bind + ' is already in use'); - process.exit(1); - break; - default: - throw error; - } -} function IOConnection(io) { @@ -166,11 +164,12 @@ function IOConnection(io) { socket.on("GET/USER_INFO", () => { - var token = socket.handshake.headers.cookie + var cookies = socket.handshake.headers.cookie - if(token) { + if(cookies) { - token = socket.handshake.headers.cookie.replace("token=", "") + cookies = cook.parse(cookies) + var token = cookies.token if(auth.checkUser(token)) {