101 lines
3.1 KiB
TypeScript
101 lines
3.1 KiB
TypeScript
|
/*
|
||
|
* Copyright 2017 Red Hat, Inc. and/or its affiliates
|
||
|
* and other contributors as indicated by the @author tags.
|
||
|
*
|
||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||
|
* you may not use this file except in compliance with the License.
|
||
|
* You may obtain a copy of the License at
|
||
|
*
|
||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||
|
*
|
||
|
* Unless required by applicable law or agreed to in writing, software
|
||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
|
* See the License for the specific language governing permissions and
|
||
|
* limitations under the License.
|
||
|
*/
|
||
|
declare module KeycloakModule {
|
||
|
|
||
|
export interface Promise {
|
||
|
success(callback: Function): Promise;
|
||
|
error(callback: Function): Promise;
|
||
|
}
|
||
|
|
||
|
export type ResponseModes = "query" | "fragment";
|
||
|
export type Flows = "standard" | "implicit" | "hybrid";
|
||
|
|
||
|
export interface InitOptions {
|
||
|
checkLoginIframe?: boolean;
|
||
|
checkLoginIframeInterval?: number;
|
||
|
onLoad?: string;
|
||
|
adapter?: string;
|
||
|
responseMode?: ResponseModes;
|
||
|
flow?: Flows;
|
||
|
token?: string;
|
||
|
refreshToken?: string;
|
||
|
idToken?: string;
|
||
|
timeSkew?: number;
|
||
|
}
|
||
|
|
||
|
export interface LoginOptions {
|
||
|
redirectUri?: string;
|
||
|
prompt?: string;
|
||
|
maxAge?: number;
|
||
|
loginHint?: string;
|
||
|
action?: string;
|
||
|
locale?: string;
|
||
|
}
|
||
|
|
||
|
export interface RedirectUriOptions {
|
||
|
redirectUri?: string;
|
||
|
}
|
||
|
|
||
|
export interface KeycloakClient {
|
||
|
init(options?: InitOptions): Promise;
|
||
|
login(options?: LoginOptions): Promise;
|
||
|
createLoginUrl(options?: LoginOptions): string;
|
||
|
logout(options?: RedirectUriOptions): Promise;
|
||
|
createLogoutUrl(options?: RedirectUriOptions): string;
|
||
|
register(options?: LoginOptions): Promise;
|
||
|
createRegisterUrl(options?: RedirectUriOptions): string;
|
||
|
accountManagement(): Promise;
|
||
|
createAccountUrl(options?: RedirectUriOptions): string;
|
||
|
hasRealmRole(role: string): boolean;
|
||
|
hasResourceRole(role: string, resource?: string): boolean;
|
||
|
loadUserProfile(): Promise;
|
||
|
isTokenExpired(minValidity: number): boolean;
|
||
|
updateToken(minValidity: number): Promise;
|
||
|
clearToken(): any;
|
||
|
|
||
|
realm: string;
|
||
|
clientId: string;
|
||
|
authServerUrl: string;
|
||
|
|
||
|
token: string;
|
||
|
tokenParsed: any;
|
||
|
refreshToken: string;
|
||
|
refreshTokenParsed: any;
|
||
|
idToken: string;
|
||
|
idTokenParsed: any;
|
||
|
realmAccess: any;
|
||
|
resourceAccess: any;
|
||
|
authenticated: boolean;
|
||
|
subject: string;
|
||
|
timeSkew: number;
|
||
|
responseMode: ResponseModes;
|
||
|
flow: Flows;
|
||
|
responseType: string;
|
||
|
|
||
|
onReady: Function;
|
||
|
onAuthSuccess: Function;
|
||
|
onAuthError: Function;
|
||
|
onAuthRefreshSuccess: Function;
|
||
|
onAuthRefreshError: Function;
|
||
|
onAuthLogout: Function;
|
||
|
onTokenExpired: Function;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
declare var Keycloak: {
|
||
|
new(config?: any): KeycloakModule.KeycloakClient;
|
||
|
};
|