UNPKG

@restmatic/jwt-session

Version:

Provides Authentication to the RestMatic platform.

61 lines 2.64 kB
"use strict"; /** * @file SessionSecurity * @author Jim Bulkowski <jim.b@paperelectron.com> * @project jwt-session * @license MIT {@link http://opensource.org/licenses/MIT} */ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const plugin_tools_1 = require("@pomegranate/plugin-tools"); const jsonwebtoken_1 = require("jsonwebtoken"); exports.SessionSecurity = plugin_tools_1.CreatePlugin('merge') .configuration({ name: 'SessionSecurity', injectableParam: 'RouteSecurity', injectableScope: 'global', depends: ['@restmatic/AuthenticationCore', '@restmatic/RouteSecurity'], provides: ['@restmatic/Core'] }) .variables({ jwtSecret: 'changeMe', jwtSigningOptions: {}, jwtVerifyOptions: {} }) .hooks({ load: (Injector, PluginLogger, PluginVariables, PluginFiles, Authentication) => __awaiter(this, void 0, void 0, function* () { PluginLogger.log('Creating SessionSecurity methods', 1); return { encodeJwt: (data, overrideOpts) => { const opts = overrideOpts || PluginVariables.jwtSigningOptions; return new Promise((resolve, reject) => { jsonwebtoken_1.sign(data, PluginVariables.jwtSecret, opts, (err, token) => { if (err) { return reject(err); } return resolve(token); }); }); }, decodeJwt: (token, overrideOpts) => { const opts = overrideOpts || PluginVariables.jwtVerifyOptions; return new Promise((resolve, reject) => { jsonwebtoken_1.verify(token, PluginVariables.jwtSecret, opts, (err, payload) => { if (err) { return reject(err); } return resolve(payload); }); }); } }; }) }); //# sourceMappingURL=SessionSecurity.js.map