Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface JwtParser

JwtParser parse jwt token, handle with jwk

Hierarchy

  • JwtParser

Index

Methods

parse

  • parse(token: string, pk: Buffer): [Record<string, unknown>, Record<string, unknown>]
  • parse, validate and verify signature by public key

    example
    import * as crypto from "crypto";
    
    let parser = crypto.newJwtParser();
    let [header, payload] = parser.parse(token, pk);
    

    Parameters

    • token: string

      JWT

    • pk: Buffer

      Public Key

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

parsePublicKeyFromJwks

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

    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)
    

    Parameters

    • jwks: jwks
    • kid: string

    Returns Buffer

parseWithJwks

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

    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);
    

    Parameters

    • token: string
    • jwks: jwks

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

parseWithoutVerify

  • parseWithoutVerify(token: string): [Record<string, unknown>, Record<string, unknown>]
  • parse without valid and verify

    example
    import * as crypto from "crypto";
    
    let parser = crypto.newJwtParser();
    let [header, payload] = parser.parseWithoutVerify(token);
    

    Parameters

    • token: string

      JWT

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

verifyWithJwks

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

    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")
    }
    

    Parameters

    • token: string
    • jwks: jwks

    Returns boolean