UNPKG

@microsoft/mgt-teamsfx-provider

Version:
96 lines 3.15 kB
/** * ------------------------------------------------------------------------------------------- * 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