@axa-fr/oidc-client-service-worker
Version:
OpenID Connect & OAuth authentication service worker
111 lines • 3.92 kB
TypeScript
export type DomainDetails = {
domains?: Domain[];
oidcDomains?: Domain[];
accessTokenDomains?: Domain[];
showAccessToken: boolean;
convertAllRequestsToCorsExceptNavigate?: boolean;
setAccessTokenToNavigateRequests?: boolean;
demonstratingProofOfPossession?: boolean;
demonstratingProofOfPossessionOnlyWhenDpopHeaderPresent?: boolean;
demonstratingProofOfPossessionConfiguration?: DemonstratingProofOfPossessionConfiguration;
allowMultiTabLogin?: boolean;
};
export interface DemonstratingProofOfPossessionConfiguration {
generateKeyAlgorithm: RsaHashedKeyGenParams | EcKeyGenParams;
digestAlgorithm: AlgorithmIdentifier;
importKeyAlgorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm;
signAlgorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams;
jwtHeaderAlgorithm: string;
}
export type Domain = string | RegExp;
export type TrustedDomains = {
[key: string]: Domain[] | DomainDetails;
} | null;
export type OidcServerConfiguration = {
revocationEndpoint: string;
issuer: string;
authorizationEndpoint: string;
tokenEndpoint: string;
userInfoEndpoint: string;
};
export type OidcConfiguration = {
token_renew_mode: string;
demonstrating_proof_of_possession: boolean;
};
export interface FetchHeaders extends Headers {
keys(): string[];
}
export type Status = 'LOGGED' | 'LOGGED_IN' | 'LOGGED_OUT' | 'NOT_CONNECTED' | 'LOGOUT_FROM_ANOTHER_TAB' | 'SESSION_LOST' | 'REQUIRE_SYNC_TOKENS' | 'FORCE_REFRESH' | null;
export type MessageEventType = 'clear' | 'init' | 'setState' | 'getState' | 'setCodeVerifier' | 'getCodeVerifier' | 'setSessionState' | 'getSessionState' | 'setNonce' | 'getNonce' | 'setDemonstratingProofOfPossessionNonce' | 'getDemonstratingProofOfPossessionNonce' | 'setDemonstratingProofOfPossessionJwk' | 'getDemonstratingProofOfPossessionJwk';
export type MessageData = {
status: Status;
oidcServerConfiguration: OidcServerConfiguration;
oidcConfiguration: OidcConfiguration;
where: string;
state: string;
codeVerifier: string;
sessionState: string;
demonstratingProofOfPossessionNonce: string;
demonstratingProofOfPossessionJwkJson: string;
nonce: Nonce;
};
export type MessageEventData = {
configurationName: string;
tabId: string;
type: MessageEventType;
data: MessageData;
};
export type Nonce = {
nonce: string;
} | null;
export type OidcConfig = {
demonstratingProofOfPossessionConfiguration: DemonstratingProofOfPossessionConfiguration | null;
configurationName: string;
tokens: Tokens | null;
status: Status;
state: string | null;
codeVerifier: string | null;
nonce: Nonce;
oidcServerConfiguration: OidcServerConfiguration | null;
oidcConfiguration?: OidcConfiguration;
sessionState?: string | null;
items?: MessageData;
hideAccessToken: boolean;
convertAllRequestsToCorsExceptNavigate: boolean;
setAccessTokenToNavigateRequests: boolean;
demonstratingProofOfPossessionNonce: string | null;
demonstratingProofOfPossessionJwkJson: string | null;
demonstratingProofOfPossessionOnlyWhenDpopHeaderPresent: boolean;
allowMultiTabLogin: boolean;
};
export type IdTokenPayload = {
iss: string;
/**
* (Expiration Time) Claim
*/
exp: number;
/**
* (Issued At) Claim
*/
iat: number;
nonce: string | null;
};
export type AccessTokenPayload = {
exp: number;
sub: string;
iat: number;
};
export type Tokens = {
issued_at: number | string;
access_token: string;
accessTokenPayload: AccessTokenPayload | null;
id_token: null | string;
idTokenPayload: IdTokenPayload;
refresh_token?: string;
expiresAt: number;
expires_in: number | string;
};
export type Database = {
[key: string]: OidcConfig;
};
//# sourceMappingURL=types.d.ts.map