@restmatic/jwt-session
Version:
Provides Authentication to the RestMatic platform.
61 lines • 2.64 kB
JavaScript
;
/**
* @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