Nature Preceded Machines

    jwt-service
    TypeScript icon, indicating that this package has built-in type declarations

    9.0.1 • Public • Published

    jwt-service

    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

    initJWT(services)Promise.<JWTService>

    Instantiate the JWT service

    Typedefs

    JWTService

    initJWT(services) ⇒ Promise.<JWTService>

    Instantiate the JWT service

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

    Param Type Description
    services Object The services to inject
    [services.JWT_SECRET_ENV_NAME] function The environment variable name in which to pick-up the JWT secret
    [services.ENV] Object An environment object
    services.JWT function The JWT service configuration object
    [services.log] function A logging function
    [services.time] function A function returning the current timestamp

    Example

    import initJWTService from 'jwt-service';
    
    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.

    Param Type Description
    payload Object The payload to sign
    [algorithm] String The 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.

    Param Type Description
    [token] String The token to decode

    Example

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

    Authors

    License

    MIT

    Install

    npm i jwt-service

    DownloadsWeekly Downloads

    109

    Version

    9.0.1

    License

    MIT

    Unpacked Size

    69 kB

    Total Files

    12

    Last publish

    Collaborators

    • nfroidure