virgil-sdk
Version:
Virgil Security Services SDK
67 lines (66 loc) • 2.01 kB
TypeScript
import { IPrivateKey, IAccessTokenSigner } from '../types';
import { IExtraData } from '../Cards/ICard';
import { Jwt } from './Jwt';
/**
* {@link JwtGenerator} initialization options.
*/
export interface IJwtGeneratorOptions {
/**
* API Private key from Virgil Dashboard to be used to generate
* signatures of tokens.
*/
apiKey: IPrivateKey;
/**
* ID of the API Key from Virgil Dashboard.
*/
apiKeyId: string;
/**
* Application ID from Virgil Dashboard. This will be the value of the
* `Issuer` field in generated tokens.
*/
appId: string;
/**
* Object used to generate signatures of tokens.
*/
accessTokenSigner: IAccessTokenSigner;
/**
* Time to live in milliseconds of the tokens created by this generator.
* Optional. Default is `20 * 60 * 1000` (20 minutes).
*/
millisecondsToLive?: number;
}
/**
* Class responsible for JWT generation.
*/
export declare class JwtGenerator {
/**
* @see {@link IJwtGeneratorOptions.appId}
*/
readonly appId: string;
/**
* @see {@link IJwtGeneratorOptions.apiKey}
*/
readonly apiKey: IPrivateKey;
/**
* @see {@link IJwtGeneratorOptions.apiKeyId}
*/
readonly apiKeyId: string;
/**
* @see {@link IJwtGeneratorOptions.accessTokenSigner}
*/
readonly accessTokenSigner: IAccessTokenSigner;
/**
* @see {@link IJwtGeneratorOptions.millisecondsToLive}
*/
readonly millisecondsToLive: number;
constructor(options: IJwtGeneratorOptions);
/**
* Generates a token with the given identity as the subject and optional
* additional data.
* @param {string} identity - Identity to be associated with JWT (i.e.
* the Subject).
* @param {IExtraData} ada - Additional data to be encoded in the JWT.
* @returns {Jwt}
*/
generateToken(identity: string, ada?: IExtraData): Jwt;
}