@axa-fr/oidc-client
Version:
OpenID Connect & OAuth authentication using native javascript only, compatible with angular, react, vue, svelte, next, etc.
76 lines (68 loc) • 2.46 kB
text/typescript
export type Fetch = typeof window.fetch;
export type LogoutToken = 'access_token' | 'refresh_token';
export type ServiceWorkerUpdateRequireCallback = (
registration: any,
stopKeepAlive: () => void,
) => Promise<void>;
export type ServiceWorkerRegister = (
serviceWorkerRelativeUrl: string,
) => Promise<ServiceWorkerRegistration>;
export type ServiceWorkerActivate = () => boolean;
export enum TokenAutomaticRenewMode {
AutomaticBeforeTokenExpiration = 'AutomaticBeforeTokensExpiration',
AutomaticOnlyWhenFetchExecuted = 'AutomaticOnlyWhenFetchExecuted',
}
export type OidcConfiguration = {
client_id: string;
redirect_uri: string;
silent_redirect_uri?: string;
silent_login_uri?: string;
silent_login_timeout?: number;
scope: string;
authority: string;
authority_time_cache_wellknowurl_in_second?: number;
authority_timeout_wellknowurl_in_millisecond?: number;
authority_configuration?: AuthorityConfiguration;
refresh_time_before_tokens_expiration_in_second?: number;
token_automatic_renew_mode?: TokenAutomaticRenewMode;
token_request_timeout?: number;
service_worker_relative_url?: string;
service_worker_register?: ServiceWorkerRegister;
service_worker_keep_alive_path?: string;
service_worker_activate?: ServiceWorkerActivate;
service_worker_only?: boolean;
service_worker_convert_all_requests_to_cors?: boolean;
extras?: StringMap;
token_request_extras?: StringMap;
storage?: Storage;
monitor_session?: boolean;
token_renew_mode?: string;
logout_tokens_to_invalidate?: Array<LogoutToken>;
demonstrating_proof_of_possession?: boolean;
demonstrating_proof_of_possession_configuration?: DemonstratingProofOfPossessionConfiguration;
preload_user_info?: boolean;
};
export interface DemonstratingProofOfPossessionConfiguration {
generateKeyAlgorithm: RsaHashedKeyGenParams | EcKeyGenParams;
digestAlgorithm: AlgorithmIdentifier;
importKeyAlgorithm:
| AlgorithmIdentifier
| RsaHashedImportParams
| EcKeyImportParams
| HmacImportParams
| AesKeyAlgorithm;
signAlgorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams;
jwtHeaderAlgorithm: string;
}
export interface StringMap {
[key: string]: string;
}
export interface AuthorityConfiguration {
authorization_endpoint: string;
token_endpoint: string;
revocation_endpoint: string;
end_session_endpoint?: string;
userinfo_endpoint?: string;
check_session_iframe?: string;
issuer: string;
}