@microsoft/mgt
Version:
The Microsoft Graph Toolkit
194 lines (193 loc) • 5.03 kB
TypeScript
/**
* -------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.
* See License in the project root for license information.
* -------------------------------------------------------------------------------------------
*/
import { AuthenticationProviderOptions } from '@microsoft/microsoft-graph-client/lib/es/IAuthenticationProviderOptions';
import { IProvider, LoginType } from './IProvider';
import { AuthenticationParameters, Configuration, UserAgentApplication } from 'msal';
/**
* config for MSAL authentication
*
* @export
* @interface MsalConfig
*/
export interface MsalConfig {
/**
* clientId alphanumeric code
*
* @type {string}
* @memberof MsalConfig
*/
clientId: string;
/**
* scopes
*
* @type {string[]}
* @memberof MsalConfig
*/
scopes?: string[];
/**
* config authority
*
* @type {string}
* @memberof MsalConfig
*/
authority?: string;
/**
* loginType if login uses popup
*
* @type {LoginType}
* @memberof MsalConfig
*/
loginType?: LoginType;
/**
* options
*
* @type {Configuration}
* @memberof MsalConfig
*/
options?: Configuration;
/**
* login hint value
*
* @type {string}
* @memberof MsalConfig
*/
loginHint?: string;
}
/**
* Msal Provider using MSAL.js to aquire tokens for authentication
*
* @export
* @class MsalProvider
* @extends {IProvider}
*/
export declare class MsalProvider extends IProvider {
/**
* authentication parameter
*
* @type {string[]}
* @memberof MsalProvider
*/
scopes: string[];
/**
* Determines application
*
* @protected
* @type {UserAgentApplication}
* @memberof MsalProvider
*/
protected _userAgentApplication: UserAgentApplication;
/**
* client-id authentication
*
* @protected
* @type {string}
* @memberof MsalProvider
*/
protected clientId: string;
private _loginType;
private _loginHint;
private sessionStorageRequestedScopesKey;
private sessionStorageDeniedScopesKey;
constructor(config: MsalConfig);
/**
* simplified form of single sign-on (SSO)
*
* @returns
* @memberof MsalProvider
*/
trySilentSignIn(): Promise<void>;
/**
* login auth Promise, Redirects request, and sets Provider state to SignedIn if response is recieved
*
* @param {AuthenticationParameters} [authenticationParameters]
* @returns {Promise<void>}
* @memberof MsalProvider
*/
login(authenticationParameters?: AuthenticationParameters): Promise<void>;
/**
* logout auth Promise, sets Provider state to SignedOut
*
* @returns {Promise<void>}
* @memberof MsalProvider
*/
logout(): Promise<void>;
/**
* recieves acess token Promise
*
* @param {AuthenticationProviderOptions} options
* @returns {Promise<string>}
* @memberof MsalProvider
*/
getAccessToken(options: AuthenticationProviderOptions): Promise<string>;
/**
* sets scopes
*
* @param {string[]} scopes
* @memberof MsalProvider
*/
updateScopes(scopes: string[]): void;
/**
* if login runs into error, require user interaction
*
* @protected
* @param {*} error
* @returns
* @memberof MsalProvider
*/
protected requiresInteraction(error: any): boolean;
/**
* setting scopes in sessionStorage
*
* @protected
* @param {string[]} scopes
* @memberof MsalProvider
*/
protected setRequestedScopes(scopes: string[]): void;
/**
* getting scopes from sessionStorage if they exist
*
* @protected
* @returns
* @memberof MsalProvider
*/
protected getRequestedScopes(): any;
/**
* clears requested scopes from sessionStorage
*
* @protected
* @memberof MsalProvider
*/
protected clearRequestedScopes(): void;
/**
* sets Denied scopes to sessionStoage
*
* @protected
* @param {string[]} scopes
* @memberof MsalProvider
*/
protected addDeniedScopes(scopes: string[]): void;
/**
* gets deniedScopes from sessionStorage
*
* @protected
* @returns
* @memberof MsalProvider
*/
protected getDeniedScopes(): any;
/**
* if scopes are denied
*
* @protected
* @param {string[]} scopes
* @returns
* @memberof MsalProvider
*/
protected areScopesDenied(scopes: string[]): boolean;
private initProvider;
private tokenReceivedCallback;
private errorReceivedCallback;
}