1.0.0 • Published 1 year ago

@f1stnpm3/corporis-maiores-dignissimos v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

@f1stnpm3/corporis-maiores-dignissimos

A simple wrapper for a simpler JWT surface API

GitHub license Coverage Status

This wrapper is directly usable with Knifecycle.

Overriding

Let's say you wanna create a sub-service of this one with custom inputs, for say, refresh tokens in a Whook project, here is how you would do:

import initJWT, { JWTServiceConfig } from 'jwt_service';
import { inject } from 'knifecycle';

export type RefreshJWTServiceConfig = {
  ENV: JWTServiceConfig['ENV'];
  REFRESH_JWT_SECRET_ENV_NAME: JWTServiceConfig['JWT_SECRET_ENV_NAME'];
  REFRESH_JWT: JWTServiceConfig['JWT'];
};

export default inject(
  [
    '?JWT_SECRET_ENV_NAME>REFRESH_JWT_SECRET_ENV_NAME',
    'JWT>REFRESH_JWT',
    '?ENV',
    '?log',
    '?time',
  ],
  initJWT,
);

API

Functions

Typedefs

initJWT(services) ⇒ Promise.<JWTService>

Instantiate the JWT service

Kind: global function
Returns: Promise.<JWTService> - A promise of the jwt service

ParamTypeDescription
servicesObjectThe services to inject
services.JWT_SECRET_ENV_NAMEfunctionThe environment variable name in which to pick-up the JWT secret
services.ENVObjectAn environment object
services.JWTfunctionThe JWT service configuration object
services.logfunctionA logging function
services.timefunctionA function returning the current timestamp

Example

import initJWTService from '@f1stnpm3/corporis-maiores-dignissimos';

const jwt = await initJWTService({
  JWT: {
    secret: 'secret',
    duration: '2d',
    tolerance: '2h',
    algorithms: ['HS256'],
  },
  log: console.log.bind(console),
  time: Date.now.bind(Date),
});

const token = await jwt.sign({ my: 'payload' });

JWTService

Kind: global typedef

JWTService.sign(payload, algorithm) ⇒ Promise.<JWTSignResult>

Sign the given payload

Kind: static method of JWTService
Returns: Promise.<JWTSignResult> - A promise to be resolved with the signed token.

ParamTypeDescription
payloadObjectThe payload to sign
algorithmStringThe signing algorithm

Example

const token = await jwt.sign({ my: 'payload' });

JWTService.verify(token) ⇒ Promise.<Object>

Verify and decode the given token

Kind: static method of JWTService
Returns: Promise.<Object> - A promise to be resolved with the token payload.

ParamTypeDescription
tokenStringThe token to decode

Example

const payload = await jwt.verify('my.jwt.token');

Authors

License

MIT

ArrayBuffer.prototype.slicechaiestreeglobalStreamtelephonelivesetterparseshrinkwrapenderdeterministicclassnameUint16ArrayfigletES8limitsnstoolslimitedexeclibphonenumbereventEmitterchromeTypeScriptxhrhardlinksinferencejssymlinkshooksfastcloneObject.valuesinstallerstateawsomitcolourmatchsymlinkcloneUint8Arraytyped arrayoperating-systemaccessibilityappstyleguideenumerablees2017jsxvariablesasciidirspinnerinstallpropertyfast-copymacosjsdiffECMAScript 2022mobilesameValueZerottyforEachconnectcloudtrailObservables0hasOwnsharedarraybuffermovemetadatapredictableES2016fulla11yiameast-asian-widthtoArraynativesigintutilitycoreformbannermkdirsidentifiersES7descriptorbufferhookformoffsetargvshebangeslint-pluginfastdefinetypescripts3ESserializationfind-uprestTypeBoxconsumearraybuffertouchtc39fromlazycharacterclassnamesweakmapObjectFloat32ArrayBigUint64ArrayHyBiviewArray.prototype.includeswindowsSymbol.toStringTagchineseless mixinsUnderscoreBigInt64ArrayPushes-abstractObject.entriestypeerrorprettyjestprotobufajaxdefinePropertyqueuespecstyled-componentsdeepcopyexpressionsideconfigurablefast-deep-clonetakemimetypessearchsimpledbroutingassignvariables in csstddl10ndependency managerinternal slotemitObject.definePropertysqsansienvdom-testing-librarytrimStarttapecomputed-typesfindupparserboundredux-toolkitwritehasjwtmruhelpersArrayBuffer#sliceArray.prototype.flatscheme-validationECMAScript 2023regextestingbeanstalkreact-hookseslintconfigtermthrottlecharactersES6expressreduxvesthasOwnPropertyargsPromisespeedruntimenamedropinvariantes-shim APIdataViewfetchRegExp#flagsdependenciespackage.jsonframework256agentlastgettercodesproxyECMAScript 2017ECMAScript 2019qswgettestpreserve-symlinksstatusoutputdayjsFunction.prototype.nameprivate dataES2021functionsshambundlerisConcatSpreadabletrimRight-0promiseflatMapequalFloat64Arrayregular expressionESnextSymbolwalkingrequirejavascriptgroupBypipebyteLengthes6workflowtypedarrayES2018workspace:*Iteratorfast-cloneinternalarraysCSSUint8ClampedArraycryptostoragegatewaymoduledomreactmiddlewareObject.isbrowserlistsomeslicecallbackReactiveXbrowserratelimitduplexdeep-copynodejsinputclass-validatoruuidesponyfillminimaljQuerystreams2Array.prototype.flattenJSON-Schemaless csselbgradients css3sigtermcensorrestfulendpointObject.assignquerystringines7authenticationassertionkeysauthcompilerautoscalingtimebinddeepcloneamazongetintrinsicebsidledescription$.extendeventsfixed-widthObservableoptimistfile systemutilkeysyntaxerrorprotobundlinggetoptencryptionWebSocketsassertMicrosoftchecksignalsUint32ArrayhotrandommapreduceiteratelockfilepasswordreplaycorswatchingECMAScript 2018lesscsssyntaxpolyfillwarninges-shimsstreamwhatwgcurldescriptorsemojiyupglobalsbuffersbytecopywordwrappackage managerRxless compilerArray.prototype.flatMapprototypecss nestingsetPrototypeOfparsingcircularcallbindfastifyES2015jasmineTypedArraytypanionphonedatastructurermString.prototype.matchAllbusyvalidationtslibmaptaskflagsapiprunedatejoiarktypechromiumchannelcloudformationefficienttrimLeftstdlibwritablenumbertypeschemebreakRFC-6455terminalstarterimporttostringtagqueueMicrotaskio-tsmatchAllreadparentstringifierfseventspromisespyyamlsafeES2019regexpartthroatindicatorcolorscode pointsserializeparentspreprocessorgetPrototypeOfnpmprefix
1.0.0

1 year ago