@microsoft/teams-ai
Version:
SDK focused on building AI based applications for Microsoft Teams.
90 lines • 3.99 kB
JavaScript
;
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.OAuthPromptMessageExtensionAuthentication = void 0;
const MessageExtensionAuthenticationBase_1 = require("./MessageExtensionAuthenticationBase");
const UserTokenAccess = __importStar(require("./UserTokenAccess"));
const MessageExtensions_1 = require("../MessageExtensions");
/**
* @internal
*
* Handles authentication for Teams Message Extension.
*/
class OAuthPromptMessageExtensionAuthentication extends MessageExtensionAuthenticationBase_1.MessageExtensionAuthenticationBase {
settings;
/**
* Creates a new instance of OAuthPromptMessageExtensionAuthentication.
* @param {OAuthSettings} settings The OAuthPromptSettings.
*/
constructor(settings) {
super(settings.title, settings.text);
this.settings = settings;
}
/**
* Handles the SSO token exchange.
* @param {TurnContext} context The turn context.
* @returns {Promise<TokenResponse | undefined>} A promise that resolves to the token response or undefined if token exchange failed.
*/
async handleSsoTokenExchange(context) {
const tokenExchangeRequest = context.activity.value.authentication;
if (!tokenExchangeRequest || !tokenExchangeRequest.token) {
return;
}
return await UserTokenAccess.exchangeToken(context, this.settings, tokenExchangeRequest);
}
/**
* Handles the signin/verifyState activity.
* @param {TurnContext} context The turn context.
* @param {string} magicCode The magic code from sign-in.
* @returns {Promise<TokenResponse | undefined>} A promise that resolves to undefined. The parent class will trigger silentAuth again.
*/
async handleUserSignIn(context, magicCode) {
return await UserTokenAccess.getUserToken(context, this.settings, magicCode);
}
/**
* Gets the sign-in link for the user.
* @param {TurnContext} context The turn context.
* @returns {Promise<string | undefined>} A promise that resolves to the sign-in link or undefined if no sign-in link available.
*/
async getSignInLink(context) {
const signInResource = await UserTokenAccess.getSignInResource(context, this.settings);
return signInResource.signInLink;
}
/**
* Should sign in using SSO flow.
* @param {TurnContext} context - The turn context.
* @returns {boolean} - A boolean indicating if the sign-in should use SSO flow.
*/
isSsoSignIn(context) {
if (context.activity.name === MessageExtensions_1.MessageExtensionsInvokeNames.QUERY_INVOKE && this.settings.enableSso == true) {
return true;
}
return false;
}
}
exports.OAuthPromptMessageExtensionAuthentication = OAuthPromptMessageExtensionAuthentication;
//# sourceMappingURL=OAuthMessageExtensionAuthentication.js.map