UNPKG

@whook/example

Version:
58 lines (45 loc) 1.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.FAKE_MECHANISM = void 0; var _yhttperror = _interopRequireDefault(require("yhttperror")); var _knifecycle = require("knifecycle"); var _httpAuthUtils = require("http-auth-utils"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const FAKE_MECHANISM = { type: 'Fake', parseAuthorizationRest: rest => { let userId; let scopes; rest.replace(/^(\d+)-((\w+,)*(\w+){1})$/, (_, rawUserId, rawScopes) => { userId = parseInt(rawUserId); scopes = rawScopes.split(); return ''; }); if ('undefined' === typeof userId || 'undefined' === typeof scopes) { throw new _yhttperror.default(400, 'E_INVALID_FAKE_TOKEN'); } return { hash: rest, userId, scopes }; } }; exports.FAKE_MECHANISM = FAKE_MECHANISM; var _default = (0, _knifecycle.name)('MECHANISMS', (0, _knifecycle.service)(initMechanisms, "mechanisms", ["DEBUG_NODE_ENVS", "NODE_ENV", "log"])); exports.default = _default; async function initMechanisms({ DEBUG_NODE_ENVS, NODE_ENV, log }) { log('debug', '🔧 - Initializing auth mechanisms'); const debugging = DEBUG_NODE_ENVS.includes(NODE_ENV); const MECHANISMS = [_httpAuthUtils.BEARER, ...(debugging ? [FAKE_MECHANISM] : [])]; if (debugging) { log('warning', '⚠️ - Using fake auth mechanism!'); } return MECHANISMS; }