@trimble-oss/trimble-id
Version:
Trimble Identity SDK for JavaScript/TypeScript
47 lines (46 loc) • 1.85 kB
TypeScript
/**
* 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;
}