0.13.0 • Published 4 months ago

@lindorm-io/jwt v0.13.0

Weekly downloads
-
License
AGPL-3.0-or-later
Repository
-
Last release
4 months ago

@lindorm-io/jwt

JWT tools for lindorm.io packages.

Installation

npm install --save @lindorm-io/jwt

Usage

Token Issuer

const issuer = new TokenIssuer({
  issuer: "https://authentication.service/",
  keystore: keyPairKeyStore,
  logger: winstonLogger,
});

Sign

const {
  id: tokenId,
  expiresIn,
  expires,
  token,
} = issuer.sign<Payload>({
  id, // OPTIONAL [ string ]
  audiences, // REQUIRED [ Array<string> ]
  authContextClass, // OPTIONAL [ Array<string> ]
  authMethodsReference, // OPTIONAL [ Array<string> ]
  claims, // OPTIONAL [ object ]
  expiry, // REQUIRED [ string | Date | number ]
  nonce, // OPTIONAL [ string ]
  notBefore, // OPTIONAL [ Date ]
  payload, // OPTIONAL [ object ]
  permissions, // OPTIONAL [ Array<string> ]
  scopes, // OPTIONAL [ Array<string> ]
  sessionId, // OPTIONAL [ string ]
  subject, // REQUIRED [ string ]
  subjectHint, // OPTIONAL [ string ]
  type, // REQUIRED [ string ]
  username, // OPTIONAL [ string ]
});

Verify

const {
  id,
  active,
  audiences,
  authContextClass,
  authMethodsReference,
  claims,
  expires,
  expiresIn,
  issuedAt,
  issuer,
  nonce,
  notBefore,
  now,
  payload,
  permissions,
  scopes,
  sessionId,
  subject,
  subjectHint,
  token,
  type,
  username,
} = issuer.verify<Payload>(token, {
  audience, // OPTIONAL [ string ]
  audiences, // OPTIONAL [ Array<string> ]
  clockTolerance, // OPTIONAL [ string ]
  issuer, // OPTIONAL [ string ]
  maxAge, // OPTIONAL [ string ]
  nonce, // OPTIONAL [ string ]
  permissions, // OPTIONAL [ Array<string> ]
  scopes, // OPTIONAL [ Array<string> ]
  subject, // OPTIONAL [ string ]
  subjects, // OPTIONAL [ Array<string> ]
  subjectHint, // OPTIONAL [ string ]
  types, // OPTIONAL [ Array<string> ]
});

Decode

const {
  id,
  active,
  audiences,
  authContextClass,
  authMethodsReference,
  claims,
  expires,
  expiresIn,
  issuedAt,
  issuer,
  keyId,
  nonce,
  notBefore,
  now,
  payload,
  permissions,
  scopes,
  sessionId,
  subject,
  subjectHint,
  type,
  username,
} = TokenIssuer.decode(token);

Expiry

TokenIssuer.getExpiry("10 seconds"); // -> 1577865610
TokenIssuer.getExpiry(20); // -> 1577865610
TokenIssuer.getExpiry(new Date("2020-01-01T08:00:00.000Z")); // -> 1577865600

TokenIssuer.getUnixTime(new Date("2020-01-01T08:00:00.000Z")); // -> 1577865600

TokenIssuer.getExpiryDate(1577865600); // -> new Date("2020-01-01T08:00:00.000Z")

Sanitiser

TokenIssuer.sanitiseToken(token); // -> <base64-header>.<base64-body>
0.13.0

4 months ago

0.12.1

5 months ago

0.12.0

5 months ago

0.11.5

5 months ago

0.11.0

6 months ago

0.11.1

6 months ago

0.11.2

6 months ago

0.11.3

6 months ago

0.11.4

5 months ago

0.10.0

11 months ago

0.9.0

1 year ago

0.9.2

1 year ago

0.9.1

1 year ago

0.8.23

1 year ago

0.9.3

1 year ago

0.8.22

1 year ago

0.8.21

1 year ago

0.8.20

1 year ago

0.8.12

1 year ago

0.8.11

1 year ago

0.8.14

1 year ago

0.8.13

1 year ago

0.8.10

1 year ago

0.8.19

1 year ago

0.8.16

1 year ago

0.8.15

1 year ago

0.8.18

1 year ago

0.8.17

1 year ago

0.8.9

2 years ago

0.8.8

2 years ago

0.8.5

2 years ago

0.8.4

2 years ago

0.8.7

2 years ago

0.8.6

2 years ago

0.8.1

2 years ago

0.8.0

2 years ago

0.8.3

2 years ago

0.8.2

2 years ago

0.6.7

2 years ago

0.6.6

2 years ago

0.6.9

2 years ago

0.6.8

2 years ago

0.6.10

2 years ago

0.6.12

2 years ago

0.6.11

2 years ago

0.6.14

2 years ago

0.6.13

2 years ago

0.6.15

2 years ago

0.7.1

2 years ago

0.7.0

2 years ago

0.6.5

2 years ago

0.6.4

2 years ago

0.6.3

2 years ago

0.6.2

2 years ago

0.6.1

3 years ago

0.6.0

3 years ago

0.5.2

3 years ago

0.5.1

3 years ago

0.4.6

3 years ago

0.5.0

3 years ago

0.4.5

3 years ago

0.4.4

3 years ago

0.4.3

3 years ago

0.4.2

3 years ago

0.4.1

3 years ago

0.4.0

3 years ago

0.3.0

3 years ago

0.3.2

3 years ago

0.3.1

3 years ago

0.2.10

3 years ago

0.2.9

3 years ago

0.2.8

3 years ago

0.2.7

3 years ago

0.2.6

3 years ago

0.2.5

3 years ago

0.2.4

3 years ago

0.2.3

3 years ago

0.2.2

3 years ago

0.2.1

3 years ago

0.2.0

3 years ago

0.1.6

3 years ago

0.1.5

3 years ago

0.1.4

3 years ago

0.1.3

3 years ago

0.1.2

3 years ago

0.1.1

3 years ago

0.1.0

4 years ago

0.0.6

4 years ago

0.0.5

4 years ago

0.0.4

4 years ago

0.0.3

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago