UNPKG

@microsoft/mgt

Version:
194 lines (193 loc) 5.03 kB
/** * ------------------------------------------------------------------------------------------- * 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; }