JwtParser parse jwt token, handle with jwk

Hierarchy

  • JwtParser

Properties

parsePublicKeyFromJwks: ((jwks, kid) => Buffer)

Type declaration

    • (jwks, kid): Buffer
    • get PEM public key from jwks

      Parameters

      Returns Buffer

      Example

      import * as crypto from "crypto";

      let parser = crypto.newJwtParser();
      let [header, payload] = parser.ParseWithoutVerify(token)
      let url = payload['iss'] + '.well-known/jwks.json'
      let resp = http.newClient().get(url)
      let pub = parser.parsePublicKeyFromJwks(resp.body, kid)
parseWithJwks: ((token, jwks) => [Record<string, unknown>, Record<string, unknown>])

Type declaration

    • (token, jwks): [Record<string, unknown>, Record<string, unknown>]
    • parse, validate and verify by JWKS

      Parameters

      Returns [Record<string, unknown>, Record<string, unknown>]

      Example

      import * as crypto from "crypto";

      let parser = crypto.newJwtParser();
      let [header, payload] = parser.parseWithoutVerify(token)
      let url = payload['iss'] + '.well-known/jwks.json'
      let resp = http.newClient().get(url)
      let [header, payload] = parser.parseWithJwks(token);
verifyWithJwks: ((token, jwks) => boolean)

Type declaration

    • (token, jwks): boolean
    • verify signature by JWKS

      Parameters

      Returns boolean

      Example

      import * as crypto from "crypto";

      let parser = crypto.newJwtParser();
      let [header, payload] = parser.ParseWithoutVerify(token)
      let url = payload['iss'] + '.well-known/jwks.json'
      let resp = http.newClient().get(url)
      if (!parser.verifyWithJwks(token, resp.body)) {
      throw new Error("invalid signature")
      }

Methods

  • parse, validate and verify signature by public key

    Parameters

    • token: string

      JWT

    • pk: Buffer

      Public Key

    Returns [Record<string, unknown>, Record<string, unknown>]

    Example

    import * as crypto from "crypto";

    let parser = crypto.newJwtParser();
    let [header, payload] = parser.parse(token, pk);
  • parse without valid and verify

    Parameters

    • token: string

      JWT

    Returns [Record<string, unknown>, Record<string, unknown>]

    Example

    import * as crypto from "crypto";

    let parser = crypto.newJwtParser();
    let [header, payload] = parser.parseWithoutVerify(token);