nomatic-jwt
Version:
JSON Web Token (JWT) utilities for Node.js
59 lines (58 loc) • 1.79 kB
TypeScript
export declare type JWTAlgorithm = 'HS256' | 'HS384' | 'HS512' | 'RS256' | 'RS384' | 'RS512';
export declare type JWTClaims = JWTRegisteredClaims & JWTPrivateClaims;
export declare type JWTPayloadData = JWTClaims | string;
export interface JWTHeaderData {
typ: string;
alg: string;
}
export interface JWTOptions {
algorithm?: JWTAlgorithm;
autoValidate?: boolean;
expiresIn?: number;
timeOffset?: number;
key?: string;
privateKey?: string;
publicKey?: string;
}
export interface JWTData {
header: JWTHeaderData;
payload: JWTPayloadData;
signature: string;
}
export interface JWTRegisteredClaims {
iss?: any;
sub?: any;
aud?: any;
exp?: number;
nbf?: number;
iat?: number;
jid?: any;
}
export interface JWTPrivateClaims {
[key: string]: string | number | boolean | Object | any[];
}
export declare class JWT {
private _algorithm;
private _autoValidate;
private _expiresIn;
private _key;
private _privateKey;
private _publicKey;
private _timeOffset;
constructor(options?: JWTOptions);
static parsePayload(payload: string): JWTPayloadData;
algorithm: JWTAlgorithm;
autoValidate: boolean;
expiresIn: number;
key: string;
privateKey: string;
publicKey: string;
timeOffset: number;
signRaw(data: string, key?: string, algorithm?: JWTAlgorithm): string;
verifyRaw(data: string, signature: string, key?: string, algorithm?: JWTAlgorithm): boolean;
decode(encoded: string, key?: string, algorithm?: JWTAlgorithm): JWTData;
encode(payload: JWTPayloadData, key?: string, algorithm?: JWTAlgorithm): string;
validate(token: JWTData, key?: string, algorithm?: JWTAlgorithm): JWTData;
}
declare const _default: JWT;
export default _default;