diff --git a/backend/src/restful/miscs.js b/backend/src/restful/miscs.js index a50e968..aa4a19e 100644 --- a/backend/src/restful/miscs.js +++ b/backend/src/restful/miscs.js @@ -30,15 +30,27 @@ export default function register($app) { ), ); } - const { payload, options } = req.body; - const jwt = eval(`require("jsonwebtoken")`); - res.set('Content-Type', 'application/json;charset=utf-8').send({ - token: jwt.sign( + try { + const { payload, options } = req.body; + const jwt = eval(`require("jsonwebtoken")`); + const token = jwt.sign( payload, eval('process.env.SUB_STORE_FRONTEND_BACKEND_PATH'), options, - ), - }); + ); + res.set('Content-Type', 'application/json;charset=utf-8').send({ + token, + }); + } catch (e) { + return failed( + res, + new InternalServerError( + 'JWT_SIGN_FAILED', + `Failed to sign JWT token`, + `Reason: ${e.message ?? e}`, + ), + ); + } }); // Storage management diff --git a/backend/src/utils/env.js b/backend/src/utils/env.js index 2ec7e3c..87c7bee 100644 --- a/backend/src/utils/env.js +++ b/backend/src/utils/env.js @@ -24,6 +24,7 @@ if (isLanceX) backend = 'LanceX'; if (isGUIforCores) backend = 'GUI.for.Cores'; let meta = {}; +let feature = {}; try { if (typeof $environment !== 'undefined') { @@ -43,6 +44,12 @@ try { meta.plugin = $Plugin; } if (isNode) { + if ( + eval('process.env.SUB_STORE_FRONTEND_BACKEND_PATH') && + eval('process.env.SUB_STORE_FRONTEND_PATH') + ) { + feature.share = true; + } meta.node = { version: eval('process.version'), argv: eval('process.argv'), @@ -63,5 +70,6 @@ try { export default { backend, version: substoreVersion, + feature, meta, };