简体   繁体   中英

Is it possible to launch js files with different permissions using nodejs/npm?

I want to launch a js file in a js file with different permission. Just like this:

main.js (which gets started)


config = JSON.parse(require("./config.json")) // <- should be possible

console.log(config.authkey) // <- should be possible

require("./randomJSFile.js").run()

randomJSFile.js (which will be executed by main.js)


exports.run = () => {

 let config = JSON.parse(require("./config.json") // <--- this should not be possible, only the main.js file should have access to the config.json file

 console.log(config.authkey) // should not be possible

}

Does anyone know how to do something like that?

Based on a snippet from this question here you could possibly override the require function to check for the filename, something like this:

const Module = require('module');
const originalRequire = Module.prototype.require;

Module.prototype.require = function() {
  if (!arguments.length || typeof arguments[0] !== 'string') return {};
  if (arguments[0].includes('config.json')) return {};
  return originalRequire.apply(this, arguments);
};

And then perform this override after you've already required the config in your main file, so you don't accidentally block yourself

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM