@microsoft/mgt-teamsfx-provider
Version:
The Microsoft Graph Toolkit TeamsFx Provider
96 lines • 3.15 kB
TypeScript
/**
* -------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.
* See License in the project root for license information.
* -------------------------------------------------------------------------------------------
*/
import { IProvider, GraphEndpoint } from '@microsoft/mgt-element';
import { TokenCredential } from '@azure/core-auth';
/**
* Interface represents TeamsUserCredential in TeamsFx library
*/
export interface TeamsFxUserCredential extends TokenCredential {
login(scopes: string | string[], resources?: string[]): Promise<void>;
}
/**
* TeamsFx Provider handler
*
* @export
* @class TeamsFxProvider
* @extends {IProvider}
*/
export declare class TeamsFxProvider extends IProvider {
/**
* Name used for analytics
*
* @readonly
* @memberof TeamsFxProvider
*/
get name(): string;
/**
* Privilege level for authentication
*
* Can use string array or space-separated string, such as ["User.Read", "Application.Read.All"] or "User.Read Application.Read.All"
*
* @type {string | string[]}
* @memberof TeamsFxProvider
*/
private readonly scopes;
/**
* TeamsFxUserCredential instance
*
* @type {TeamsFx}
* @memberof TeamsFxProvider
*/
private readonly _credential;
/**
* Access token provided by TeamsFx
*
* @type {string}
* @memberof TeamsFxProvider
*/
private _accessToken;
/**
* Constructor of TeamsFxProvider.
*
* @example
* ```typescript
* import {Providers} from '@microsoft/mgt-element';
* import {TeamsFxProvider} from '@microsoft/mgt-teamsfx-provider';
* import {TeamsUserCredential, TeamsUserCredentialAuthConfig} from "@microsoft/teamsfx";
*
* const authConfig: TeamsUserCredentialAuthConfig = {
* clientId: process.env.REACT_APP_CLIENT_ID,
* initiateLoginEndpoint: process.env.REACT_APP_START_LOGIN_PAGE_URL,
* };
* const scope = ["User.Read"];
*
* const credential = new TeamsUserCredential(authConfig);
* const provider = new TeamsFxProvider(credential, scope);
* Providers.globalProvider = provider;
* ```
*
* @param {TeamsFxUserCredential} credential - TeamsUserCredential instance in TeamsFx library.
* @param {string | string[]} scopes - The list of scopes for which the token will have access.
* @param {GraphEndpoint} baseURL - Graph endpoint.
*
*/
constructor(credential: TeamsFxUserCredential, scopes: string | string[], baseURL?: GraphEndpoint);
/**
* Uses provider to receive access token via TeamsFx
*
* @returns {Promise<string>}
* @memberof TeamsFxProvider
*/
getAccessToken(): Promise<string>;
/**
* Performs the login using TeamsFx
*
* @returns {Promise<void>}
* @memberof TeamsFxProvider
*/
login(): Promise<void>;
private validateScopesType;
private getScopesArray;
}
//# sourceMappingURL=TeamsFxProvider.d.ts.map