UNPKG

@trimble-oss/trimble-id

Version:

Trimble Identity SDK for JavaScript/TypeScript

47 lines (46 loc) 1.85 kB
/** * Copyright (c) Trimble Inc. */ import { ClaimsetProvider } from '../interfaces/ClaimsetProvider'; import { KeysetProvider } from '../interfaces/KeysetProvider'; import { Claimset } from '../interfaces/Claimset'; /** * Provides validated claimset for a JSON web token */ export default class ValidatedClaimsetProvider implements ClaimsetProvider { private readonly _keysetProvider; private _keyset; private _clockSkewInSeconds; private _tokenValidationRequired; /** * Public constructor for ValidatedClaimsetProvider class * * @param keysetProvider - A provider for the keyset used to validate the JWT claimset. * It can be OpenIdKeysetProvider/FixedKeysetProvider */ constructor(keysetProvider: KeysetProvider); /** * Fluent extension for setting clock skew/grace period while validating the token. * * @param clockSkewInSeconds - is the acceptable time difference between signer and verifier in seconds. */ WithClockSkew(clockSkewInSeconds: number): ValidatedClaimsetProvider; /** * Fluent extension for allowing token validation. * * @param tokenValidationRequired - is validated before retrieving claims if tokenValidationRequired is set to true. */ WithTokenValidation(tokenValidationRequired: boolean): ValidatedClaimsetProvider; /** * Retrieves a validated claimset from a given JSON web token * * @param token - The JWT token to extract claimset from * @returns A Promise that resolves to the claimset on completion * @throws Thrown when the keyset provider does not provide the named key * @throws Thrown when the JSON web token is invalid */ RetrieveClaimset(token: string): Promise<Claimset>; private _retrieveKeyset; private _findMatchingKey; private _validateToken; }