@theoperatore/destiny-auth-proxy
Version:
A simple refresh token server for handling Destiny OAuth tokens
45 lines (34 loc) • 1.3 kB
JavaScript
// the cli is always run in production, unless overridden
process.env.NODE_ENV = process.env.NODE_ENV || 'production';
const program = require('commander');
const pkgVersion = require('../package.json').version;
const createServer = require('./server');
const log = require('./utils/logger');
const collect = (value, collection) => {
collection.push(value);
return collection;
};
program
.version(pkgVersion)
.option('-p, --port [port]', 'Port to run the server on. Defaults to 9966', 9966)
.option('-c, --client [clientId:clientSecret]', 'Bungie API clientId:clientSecret pairs', collect, [])
.option('-d, --domain [fqdn]', 'A domain that this proxy will serve.', collect, [])
.option('-v, --verbose', 'Output log messages to the console')
.parse(process.argv);
const port = program.port;
const authorizedClients = program.client.reduce((obj, clientPair) => {
const parts = clientPair.split(':');
const pair = {
[parts[0]]: parts[1],
};
return Object.assign(obj, pair);
}, {});
const server = createServer(authorizedClients, program.domain);
server.enableFileLogging();
if (program.verbose) {
server.enableConsoleLogging();
}
server.listen(port, () => {
log.info(`- ${new Date().toUTCString()} Destiny Auth Proxy listening on: ${port}`);
});