@microsoft/agents-hosting 0.5.4-ga4d0401645 → 0.5.16-g6bdf69cc43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/app/adaptiveCards/adaptiveCardsActions.js +4 -4
- package/dist/src/app/adaptiveCards/adaptiveCardsActions.js.map +1 -1
- package/dist/src/app/agentApplication.d.ts +186 -20
- package/dist/src/app/agentApplication.js +235 -33
- package/dist/src/app/agentApplication.js.map +1 -1
- package/dist/src/app/agentApplicationBuilder.d.ts +1 -1
- package/dist/src/app/agentApplicationOptions.d.ts +1 -1
- package/dist/src/app/appRoute.d.ts +5 -0
- package/dist/src/app/authorization.d.ts +293 -0
- package/dist/src/app/authorization.js +375 -0
- package/dist/src/app/authorization.js.map +1 -0
- package/dist/src/app/index.d.ts +1 -1
- package/dist/src/app/index.js +1 -1
- package/dist/src/app/index.js.map +1 -1
- package/dist/src/app/streaming/citation.d.ts +25 -0
- package/dist/src/app/streaming/{AIEntity.js → citation.js} +1 -1
- package/dist/src/app/streaming/citation.js.map +1 -0
- package/dist/src/app/streaming/{utilities.d.ts → citationUtil.d.ts} +3 -3
- package/dist/src/app/streaming/{utilities.js → citationUtil.js} +5 -36
- package/dist/src/app/streaming/citationUtil.js.map +1 -0
- package/dist/src/app/streaming/streamingResponse.d.ts +3 -4
- package/dist/src/app/streaming/streamingResponse.js +24 -22
- package/dist/src/app/streaming/streamingResponse.js.map +1 -1
- package/dist/src/auth/index.d.ts +1 -0
- package/dist/src/auth/index.js +1 -0
- package/dist/src/auth/index.js.map +1 -1
- package/dist/src/auth/jwt-middleware.js.map +1 -1
- package/dist/src/auth/msalTokenCredential.d.ts +10 -0
- package/dist/src/auth/msalTokenCredential.js +19 -0
- package/dist/src/auth/msalTokenCredential.js.map +1 -0
- package/dist/src/auth/msalTokenProvider.d.ts +1 -0
- package/dist/src/auth/msalTokenProvider.js +15 -0
- package/dist/src/auth/msalTokenProvider.js.map +1 -1
- package/dist/src/cards/cardFactory.d.ts +2 -2
- package/dist/src/cards/cardFactory.js.map +1 -1
- package/dist/src/oauth/index.d.ts +1 -4
- package/dist/src/oauth/index.js +1 -4
- package/dist/src/oauth/index.js.map +1 -1
- package/dist/src/oauth/oAuthFlow.d.ts +62 -19
- package/dist/src/oauth/oAuthFlow.js +193 -67
- package/dist/src/oauth/oAuthFlow.js.map +1 -1
- package/dist/src/oauth/userTokenClient.d.ts +37 -7
- package/dist/src/oauth/userTokenClient.js +56 -15
- package/dist/src/oauth/userTokenClient.js.map +1 -1
- package/dist/src/oauth/userTokenClient.types.d.ts +147 -0
- package/dist/src/oauth/{oAuthCard.js → userTokenClient.types.js} +1 -1
- package/dist/src/oauth/userTokenClient.types.js.map +1 -0
- package/package.json +5 -4
- package/src/app/adaptiveCards/adaptiveCardsActions.ts +4 -4
- package/src/app/agentApplication.ts +248 -33
- package/src/app/agentApplicationBuilder.ts +1 -1
- package/src/app/agentApplicationOptions.ts +1 -1
- package/src/app/appRoute.ts +6 -0
- package/src/app/authorization.ts +418 -0
- package/src/app/index.ts +1 -1
- package/src/app/streaming/citation.ts +29 -0
- package/src/app/streaming/{utilities.ts → citationUtil.ts} +3 -35
- package/src/app/streaming/streamingResponse.ts +28 -27
- package/src/auth/index.ts +1 -0
- package/src/auth/jwt-middleware.ts +1 -1
- package/src/auth/msalTokenCredential.ts +14 -0
- package/src/auth/msalTokenProvider.ts +17 -1
- package/src/cards/cardFactory.ts +2 -3
- package/src/oauth/index.ts +1 -4
- package/src/oauth/oAuthFlow.ts +226 -70
- package/src/oauth/userTokenClient.ts +62 -19
- package/src/oauth/userTokenClient.types.ts +173 -0
- package/dist/src/app/oauth/authorization.d.ts +0 -87
- package/dist/src/app/oauth/authorization.js +0 -135
- package/dist/src/app/oauth/authorization.js.map +0 -1
- package/dist/src/app/streaming/AIEntity.d.ts +0 -36
- package/dist/src/app/streaming/AIEntity.js.map +0 -1
- package/dist/src/app/streaming/actionCall.d.ts +0 -33
- package/dist/src/app/streaming/actionCall.js +0 -7
- package/dist/src/app/streaming/actionCall.js.map +0 -1
- package/dist/src/app/streaming/clientCitation.d.ts +0 -68
- package/dist/src/app/streaming/clientCitation.js +0 -10
- package/dist/src/app/streaming/clientCitation.js.map +0 -1
- package/dist/src/app/streaming/message.d.ts +0 -106
- package/dist/src/app/streaming/message.js +0 -7
- package/dist/src/app/streaming/message.js.map +0 -1
- package/dist/src/app/streaming/sensitivityUsageInfo.d.ts +0 -40
- package/dist/src/app/streaming/sensitivityUsageInfo.js +0 -3
- package/dist/src/app/streaming/sensitivityUsageInfo.js.map +0 -1
- package/dist/src/app/streaming/utilities.js.map +0 -1
- package/dist/src/oauth/oAuthCard.d.ts +0 -27
- package/dist/src/oauth/oAuthCard.js.map +0 -1
- package/dist/src/oauth/signingResource.d.ts +0 -43
- package/dist/src/oauth/signingResource.js +0 -5
- package/dist/src/oauth/signingResource.js.map +0 -1
- package/dist/src/oauth/tokenExchangeRequest.d.ts +0 -17
- package/dist/src/oauth/tokenExchangeRequest.js +0 -5
- package/dist/src/oauth/tokenExchangeRequest.js.map +0 -1
- package/dist/src/oauth/tokenResponse.d.ts +0 -29
- package/dist/src/oauth/tokenResponse.js +0 -25
- package/dist/src/oauth/tokenResponse.js.map +0 -1
- package/src/app/oauth/authorization.ts +0 -162
- package/src/app/streaming/AIEntity.ts +0 -44
- package/src/app/streaming/actionCall.ts +0 -37
- package/src/app/streaming/clientCitation.ts +0 -102
- package/src/app/streaming/message.ts +0 -125
- package/src/app/streaming/sensitivityUsageInfo.ts +0 -48
- package/src/oauth/oAuthCard.ts +0 -30
- package/src/oauth/signingResource.ts +0 -48
- package/src/oauth/tokenExchangeRequest.ts +0 -20
- package/src/oauth/tokenResponse.ts +0 -43
|
@@ -1,13 +1,27 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { Activity } from '@microsoft/agents-activity';
|
|
2
|
+
import { TurnContext, Storage } from '../';
|
|
3
|
+
import { UserTokenClient } from './userTokenClient';
|
|
4
|
+
import { TokenResponse } from './userTokenClient.types';
|
|
5
|
+
/**
|
|
6
|
+
* Represents the state of the OAuth flow.
|
|
7
|
+
* @interface FlowState
|
|
8
|
+
*/
|
|
9
|
+
export interface FlowState {
|
|
10
|
+
/** Indicates whether the OAuth flow has been started */
|
|
11
|
+
flowStarted: boolean | undefined;
|
|
12
|
+
/** Timestamp when the OAuth flow expires (in milliseconds since epoch) */
|
|
13
|
+
flowExpires: number | undefined;
|
|
14
|
+
/** The absolute OAuth connection name used for the flow, null if not set */
|
|
15
|
+
absOauthConnectionName: string;
|
|
16
|
+
/** Optional activity to continue the flow with, used for multi-turn scenarios */
|
|
17
|
+
continuationActivity?: Activity | null;
|
|
18
|
+
eTag?: string;
|
|
6
19
|
}
|
|
7
20
|
/**
|
|
8
21
|
* Manages the OAuth flow
|
|
9
22
|
*/
|
|
10
23
|
export declare class OAuthFlow {
|
|
24
|
+
private storage;
|
|
11
25
|
/**
|
|
12
26
|
* The user token client used for managing user tokens.
|
|
13
27
|
*/
|
|
@@ -15,15 +29,15 @@ export declare class OAuthFlow {
|
|
|
15
29
|
/**
|
|
16
30
|
* The current state of the OAuth flow.
|
|
17
31
|
*/
|
|
18
|
-
state: FlowState
|
|
19
|
-
/**
|
|
20
|
-
* The accessor for managing the flow state in user state.
|
|
21
|
-
*/
|
|
22
|
-
flowStateAccessor: AgentStatePropertyAccessor<FlowState | null>;
|
|
32
|
+
state: FlowState;
|
|
23
33
|
/**
|
|
24
34
|
* The ID of the token exchange request, used to deduplicate requests.
|
|
25
35
|
*/
|
|
26
36
|
tokenExchangeId: string | null;
|
|
37
|
+
/**
|
|
38
|
+
* In-memory cache for tokens with expiration.
|
|
39
|
+
*/
|
|
40
|
+
private tokenCache;
|
|
27
41
|
/**
|
|
28
42
|
* The name of the OAuth connection.
|
|
29
43
|
*/
|
|
@@ -38,11 +52,15 @@ export declare class OAuthFlow {
|
|
|
38
52
|
cardText: string;
|
|
39
53
|
/**
|
|
40
54
|
* Creates a new instance of OAuthFlow.
|
|
41
|
-
* @param
|
|
55
|
+
* @param storage The storage provider for persisting flow state.
|
|
56
|
+
* @param absOauthConnectionName The absolute OAuth connection name.
|
|
57
|
+
* @param tokenClient Optional user token client. If not provided, will be initialized automatically.
|
|
58
|
+
* @param cardTitle Optional title for the OAuth card. Defaults to 'Sign in'.
|
|
59
|
+
* @param cardText Optional text for the OAuth card. Defaults to 'login'.
|
|
42
60
|
*/
|
|
43
|
-
constructor(
|
|
61
|
+
constructor(storage: Storage, absOauthConnectionName: string, tokenClient?: UserTokenClient, cardTitle?: string, cardText?: string);
|
|
44
62
|
/**
|
|
45
|
-
* Retrieves the user token from the user token service.
|
|
63
|
+
* Retrieves the user token from the user token service with in-memory caching for 10 minutes.
|
|
46
64
|
* @param context The turn context containing the activity information.
|
|
47
65
|
* @returns A promise that resolves to the user token response.
|
|
48
66
|
* @throws Will throw an error if the channelId or from properties are not set in the activity.
|
|
@@ -51,13 +69,13 @@ export declare class OAuthFlow {
|
|
|
51
69
|
/**
|
|
52
70
|
* Begins the OAuth flow.
|
|
53
71
|
* @param context The turn context.
|
|
54
|
-
* @returns A promise that resolves to the user token.
|
|
72
|
+
* @returns A promise that resolves to the user token if available, or undefined if OAuth flow needs to be started.
|
|
55
73
|
*/
|
|
56
|
-
beginFlow(context: TurnContext): Promise<TokenResponse>;
|
|
74
|
+
beginFlow(context: TurnContext): Promise<TokenResponse | undefined>;
|
|
57
75
|
/**
|
|
58
76
|
* Continues the OAuth flow.
|
|
59
77
|
* @param context The turn context.
|
|
60
|
-
* @returns A promise that resolves to the user token.
|
|
78
|
+
* @returns A promise that resolves to the user token response.
|
|
61
79
|
*/
|
|
62
80
|
continueFlow(context: TurnContext): Promise<TokenResponse>;
|
|
63
81
|
/**
|
|
@@ -67,10 +85,35 @@ export declare class OAuthFlow {
|
|
|
67
85
|
*/
|
|
68
86
|
signOut(context: TurnContext): Promise<void>;
|
|
69
87
|
/**
|
|
70
|
-
* Gets the user state.
|
|
88
|
+
* Gets the user state for the OAuth flow.
|
|
71
89
|
* @param context The turn context.
|
|
72
|
-
* @returns A promise that resolves to the
|
|
90
|
+
* @returns A promise that resolves to the flow state.
|
|
91
|
+
*/
|
|
92
|
+
getFlowState(context: TurnContext): Promise<FlowState>;
|
|
93
|
+
/**
|
|
94
|
+
* Sets the flow state for the OAuth flow.
|
|
95
|
+
* @param context The turn context.
|
|
96
|
+
* @param flowState The flow state to set.
|
|
97
|
+
* @returns A promise that resolves when the flow state is set.
|
|
98
|
+
*/
|
|
99
|
+
setFlowState(context: TurnContext, flowState: FlowState): Promise<void>;
|
|
100
|
+
/**
|
|
101
|
+
* Initializes the user token client if not already initialized.
|
|
102
|
+
* @param context The turn context used to get authentication credentials.
|
|
73
103
|
*/
|
|
74
|
-
private getUserState;
|
|
75
104
|
private initializeTokenClient;
|
|
105
|
+
/**
|
|
106
|
+
* Generates a cache key for storing user tokens.
|
|
107
|
+
* @param context The turn context containing activity information.
|
|
108
|
+
* @returns The cache key string in format: channelId_userId_connectionName.
|
|
109
|
+
* @throws Will throw an error if required activity properties are missing.
|
|
110
|
+
*/
|
|
111
|
+
private getCacheKey;
|
|
112
|
+
/**
|
|
113
|
+
* Generates a storage key for persisting OAuth flow state.
|
|
114
|
+
* @param context The turn context containing activity information.
|
|
115
|
+
* @returns The storage key string in format: oauth/channelId/conversationId/userId/flowState.
|
|
116
|
+
* @throws Will throw an error if required activity properties are missing.
|
|
117
|
+
*/
|
|
118
|
+
private getFlowStateKey;
|
|
76
119
|
}
|
|
@@ -1,33 +1,35 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OAuthFlow =
|
|
3
|
+
exports.OAuthFlow = void 0;
|
|
4
4
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
5
5
|
// Licensed under the MIT License.
|
|
6
6
|
const logger_1 = require("./../logger");
|
|
7
7
|
const agents_activity_1 = require("@microsoft/agents-activity");
|
|
8
8
|
const __1 = require("../");
|
|
9
|
-
const
|
|
9
|
+
const userTokenClient_1 = require("./userTokenClient");
|
|
10
10
|
const logger = (0, logger_1.debug)('agents:oauth-flow');
|
|
11
|
-
class FlowState {
|
|
12
|
-
constructor() {
|
|
13
|
-
this.flowStarted = false;
|
|
14
|
-
this.flowExpires = 0;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
exports.FlowState = FlowState;
|
|
18
11
|
/**
|
|
19
12
|
* Manages the OAuth flow
|
|
20
13
|
*/
|
|
21
14
|
class OAuthFlow {
|
|
22
15
|
/**
|
|
23
16
|
* Creates a new instance of OAuthFlow.
|
|
24
|
-
* @param
|
|
17
|
+
* @param storage The storage provider for persisting flow state.
|
|
18
|
+
* @param absOauthConnectionName The absolute OAuth connection name.
|
|
19
|
+
* @param tokenClient Optional user token client. If not provided, will be initialized automatically.
|
|
20
|
+
* @param cardTitle Optional title for the OAuth card. Defaults to 'Sign in'.
|
|
21
|
+
* @param cardText Optional text for the OAuth card. Defaults to 'login'.
|
|
25
22
|
*/
|
|
26
|
-
constructor(
|
|
23
|
+
constructor(storage, absOauthConnectionName, tokenClient, cardTitle, cardText) {
|
|
24
|
+
this.storage = storage;
|
|
27
25
|
/**
|
|
28
26
|
* The ID of the token exchange request, used to deduplicate requests.
|
|
29
27
|
*/
|
|
30
28
|
this.tokenExchangeId = null;
|
|
29
|
+
/**
|
|
30
|
+
* In-memory cache for tokens with expiration.
|
|
31
|
+
*/
|
|
32
|
+
this.tokenCache = new Map();
|
|
31
33
|
/**
|
|
32
34
|
* The title of the OAuth card.
|
|
33
35
|
*/
|
|
@@ -36,113 +38,187 @@ class OAuthFlow {
|
|
|
36
38
|
* The text of the OAuth card.
|
|
37
39
|
*/
|
|
38
40
|
this.cardText = 'login';
|
|
39
|
-
this.state =
|
|
40
|
-
this.flowStateAccessor = userState.createProperty('flowState');
|
|
41
|
+
this.state = { flowStarted: undefined, flowExpires: undefined, absOauthConnectionName };
|
|
41
42
|
this.absOauthConnectionName = absOauthConnectionName;
|
|
42
43
|
this.userTokenClient = tokenClient !== null && tokenClient !== void 0 ? tokenClient : null;
|
|
43
44
|
this.cardTitle = cardTitle !== null && cardTitle !== void 0 ? cardTitle : this.cardTitle;
|
|
44
45
|
this.cardText = cardText !== null && cardText !== void 0 ? cardText : this.cardText;
|
|
45
46
|
}
|
|
46
47
|
/**
|
|
47
|
-
* Retrieves the user token from the user token service.
|
|
48
|
+
* Retrieves the user token from the user token service with in-memory caching for 10 minutes.
|
|
48
49
|
* @param context The turn context containing the activity information.
|
|
49
50
|
* @returns A promise that resolves to the user token response.
|
|
50
51
|
* @throws Will throw an error if the channelId or from properties are not set in the activity.
|
|
51
52
|
*/
|
|
52
53
|
async getUserToken(context) {
|
|
53
54
|
await this.initializeTokenClient(context);
|
|
54
|
-
logger.info('Get token from user token service');
|
|
55
55
|
const activity = context.activity;
|
|
56
|
-
if (activity.channelId
|
|
57
|
-
return await this.userTokenClient.getUserToken(this.absOauthConnectionName, activity.channelId, activity.from.id);
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
56
|
+
if (!activity.channelId || !activity.from || !activity.from.id) {
|
|
60
57
|
throw new Error('UserTokenService requires channelId and from to be set');
|
|
61
58
|
}
|
|
59
|
+
const cacheKey = this.getCacheKey(context);
|
|
60
|
+
const cachedEntry = this.tokenCache.get(cacheKey);
|
|
61
|
+
if (cachedEntry && Date.now() < cachedEntry.expiresAt) {
|
|
62
|
+
logger.info(`Returning cached token for user with cache key: ${cacheKey}`);
|
|
63
|
+
return cachedEntry.token;
|
|
64
|
+
}
|
|
65
|
+
logger.info('Get token from user token service');
|
|
66
|
+
const tokenResponse = await this.userTokenClient.getUserToken(this.absOauthConnectionName, activity.channelId, activity.from.id);
|
|
67
|
+
// Cache the token if it's valid (has a token value)
|
|
68
|
+
if (tokenResponse && tokenResponse.token) {
|
|
69
|
+
const cacheExpiry = Date.now() + (10 * 60 * 1000); // 10 minutes from now
|
|
70
|
+
this.tokenCache.set(cacheKey, {
|
|
71
|
+
token: tokenResponse,
|
|
72
|
+
expiresAt: cacheExpiry
|
|
73
|
+
});
|
|
74
|
+
logger.info('Token cached for 10 minutes');
|
|
75
|
+
}
|
|
76
|
+
return tokenResponse;
|
|
62
77
|
}
|
|
63
78
|
/**
|
|
64
79
|
* Begins the OAuth flow.
|
|
65
80
|
* @param context The turn context.
|
|
66
|
-
* @returns A promise that resolves to the user token.
|
|
81
|
+
* @returns A promise that resolves to the user token if available, or undefined if OAuth flow needs to be started.
|
|
67
82
|
*/
|
|
68
83
|
async beginFlow(context) {
|
|
69
84
|
var _a;
|
|
70
|
-
this.state = await this.
|
|
85
|
+
this.state = await this.getFlowState(context);
|
|
71
86
|
if (this.absOauthConnectionName === '') {
|
|
72
87
|
throw new Error('connectionName is not set');
|
|
73
88
|
}
|
|
74
89
|
logger.info('Starting OAuth flow for connectionName:', this.absOauthConnectionName);
|
|
75
90
|
await this.initializeTokenClient(context);
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
91
|
+
const act = context.activity;
|
|
92
|
+
// Check cache first before starting OAuth flow
|
|
93
|
+
if (act.channelId && act.from && act.from.id) {
|
|
94
|
+
const cacheKey = this.getCacheKey(context);
|
|
95
|
+
const cachedEntry = this.tokenCache.get(cacheKey);
|
|
96
|
+
if (cachedEntry && Date.now() < cachedEntry.expiresAt) {
|
|
97
|
+
logger.info(`Returning cached token for user in beginFlow with cache key: ${cacheKey}`);
|
|
98
|
+
return cachedEntry.token;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
const output = await this.userTokenClient.getTokenOrSignInResource((_a = act.from) === null || _a === void 0 ? void 0 : _a.id, this.absOauthConnectionName, act.channelId, act.getConversationReference(), act.relatesTo, undefined);
|
|
102
|
+
if (output && output.tokenResponse) {
|
|
103
|
+
// Cache the token if it's valid
|
|
104
|
+
if (act.channelId && act.from && act.from.id) {
|
|
105
|
+
const cacheKey = this.getCacheKey(context);
|
|
106
|
+
const cacheExpiry = Date.now() + (10 * 60 * 1000); // 10 minutes from now
|
|
107
|
+
this.tokenCache.set(cacheKey, {
|
|
108
|
+
token: output.tokenResponse,
|
|
109
|
+
expiresAt: cacheExpiry
|
|
110
|
+
});
|
|
111
|
+
logger.info('Token cached for 10 minutes in beginFlow');
|
|
112
|
+
this.state = { flowStarted: false, flowExpires: 0, absOauthConnectionName: this.absOauthConnectionName };
|
|
113
|
+
}
|
|
114
|
+
logger.info('Token retrieved successfully');
|
|
115
|
+
return output.tokenResponse;
|
|
83
116
|
}
|
|
84
|
-
const
|
|
85
|
-
const signingResource = await this.userTokenClient.getSignInResource(authConfig.clientId, this.absOauthConnectionName, context.activity.getConversationReference(), context.activity.relatesTo);
|
|
86
|
-
const oCard = __1.CardFactory.oauthCard(this.absOauthConnectionName, this.cardTitle, this.cardText, signingResource);
|
|
117
|
+
const oCard = __1.CardFactory.oauthCard(this.absOauthConnectionName, this.cardTitle, this.cardText, output.signInResource);
|
|
87
118
|
await context.sendActivity(__1.MessageFactory.attachment(oCard));
|
|
88
|
-
this.state
|
|
89
|
-
this.
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
return {
|
|
93
|
-
token: undefined,
|
|
94
|
-
status: tokenResponse_1.TokenRequestStatus.InProgress
|
|
95
|
-
};
|
|
119
|
+
this.state = { flowStarted: true, flowExpires: Date.now() + 60 * 5 * 1000, absOauthConnectionName: this.absOauthConnectionName };
|
|
120
|
+
await this.storage.write({ [this.getFlowStateKey(context)]: this.state });
|
|
121
|
+
logger.info('OAuth card sent, flow started');
|
|
122
|
+
return undefined;
|
|
96
123
|
}
|
|
97
124
|
/**
|
|
98
125
|
* Continues the OAuth flow.
|
|
99
126
|
* @param context The turn context.
|
|
100
|
-
* @returns A promise that resolves to the user token.
|
|
127
|
+
* @returns A promise that resolves to the user token response.
|
|
101
128
|
*/
|
|
102
129
|
async continueFlow(context) {
|
|
103
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
104
|
-
this.state = await this.
|
|
130
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
131
|
+
this.state = await this.getFlowState(context);
|
|
105
132
|
await this.initializeTokenClient(context);
|
|
106
|
-
if (((_a = this.state) === null || _a === void 0 ? void 0 : _a.flowExpires) !== 0 && Date.now() > this.state.flowExpires) {
|
|
133
|
+
if (((_a = this.state) === null || _a === void 0 ? void 0 : _a.flowExpires) !== 0 && Date.now() > ((_b = this.state) === null || _b === void 0 ? void 0 : _b.flowExpires)) {
|
|
107
134
|
logger.warn('Flow expired');
|
|
108
|
-
this.state.flowStarted = false;
|
|
109
135
|
await context.sendActivity(__1.MessageFactory.text('Sign-in session expired. Please try again.'));
|
|
110
|
-
|
|
136
|
+
this.state.flowStarted = false;
|
|
137
|
+
return { token: undefined };
|
|
111
138
|
}
|
|
112
139
|
const contFlowActivity = context.activity;
|
|
113
140
|
if (contFlowActivity.type === agents_activity_1.ActivityTypes.Message) {
|
|
114
141
|
const magicCode = contFlowActivity.text;
|
|
115
|
-
|
|
116
|
-
|
|
142
|
+
if (magicCode.match(/^\d{6}$/)) {
|
|
143
|
+
const result = await ((_c = this.userTokenClient) === null || _c === void 0 ? void 0 : _c.getUserToken(this.absOauthConnectionName, contFlowActivity.channelId, (_d = contFlowActivity.from) === null || _d === void 0 ? void 0 : _d.id, magicCode));
|
|
144
|
+
if (result && result.token) {
|
|
145
|
+
// Cache the token if it's valid
|
|
146
|
+
if (contFlowActivity.channelId && contFlowActivity.from && contFlowActivity.from.id) {
|
|
147
|
+
const cacheKey = this.getCacheKey(context);
|
|
148
|
+
const cacheExpiry = Date.now() + (10 * 60 * 1000); // 10 minutes from now
|
|
149
|
+
this.tokenCache.set(cacheKey, {
|
|
150
|
+
token: result,
|
|
151
|
+
expiresAt: cacheExpiry
|
|
152
|
+
});
|
|
153
|
+
logger.info('Token cached for 10 minutes in continueFlow (magic code)');
|
|
154
|
+
}
|
|
155
|
+
await this.storage.delete([this.getFlowStateKey(context)]);
|
|
156
|
+
logger.info('Token retrieved successfully');
|
|
157
|
+
return result;
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
// await context.sendActivity(MessageFactory.text('Invalid code. Please try again.'))
|
|
161
|
+
logger.warn('Invalid magic code provided');
|
|
162
|
+
this.state = { flowStarted: true, flowExpires: Date.now() + 30000, absOauthConnectionName: this.absOauthConnectionName };
|
|
163
|
+
await this.storage.write({ [this.getFlowStateKey(context)]: this.state });
|
|
164
|
+
return { token: undefined };
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
logger.warn('Invalid magic code format');
|
|
169
|
+
await context.sendActivity(__1.MessageFactory.text('Invalid code format. Please enter a 6-digit code.'));
|
|
170
|
+
return { token: undefined };
|
|
171
|
+
}
|
|
117
172
|
}
|
|
118
173
|
if (contFlowActivity.type === agents_activity_1.ActivityTypes.Invoke && contFlowActivity.name === 'signin/verifyState') {
|
|
119
174
|
logger.info('Continuing OAuth flow with verifyState');
|
|
120
175
|
const tokenVerifyState = contFlowActivity.value;
|
|
121
176
|
const magicCode = tokenVerifyState.state;
|
|
122
|
-
const result = await ((
|
|
177
|
+
const result = await ((_e = this.userTokenClient) === null || _e === void 0 ? void 0 : _e.getUserToken(this.absOauthConnectionName, contFlowActivity.channelId, (_f = contFlowActivity.from) === null || _f === void 0 ? void 0 : _f.id, magicCode));
|
|
178
|
+
// Cache the token if it's valid
|
|
179
|
+
if (result && result.token && contFlowActivity.channelId && contFlowActivity.from && contFlowActivity.from.id) {
|
|
180
|
+
const cacheKey = this.getCacheKey(context);
|
|
181
|
+
const cacheExpiry = Date.now() + (10 * 60 * 1000); // 10 minutes from now
|
|
182
|
+
this.tokenCache.set(cacheKey, {
|
|
183
|
+
token: result,
|
|
184
|
+
expiresAt: cacheExpiry
|
|
185
|
+
});
|
|
186
|
+
logger.info('Token cached for 10 minutes in continueFlow (verifyState)');
|
|
187
|
+
}
|
|
123
188
|
return result;
|
|
124
189
|
}
|
|
125
190
|
if (contFlowActivity.type === agents_activity_1.ActivityTypes.Invoke && contFlowActivity.name === 'signin/tokenExchange') {
|
|
126
191
|
logger.info('Continuing OAuth flow with tokenExchange');
|
|
127
192
|
const tokenExchangeRequest = contFlowActivity.value;
|
|
128
193
|
if (this.tokenExchangeId === tokenExchangeRequest.id) { // dedupe
|
|
129
|
-
|
|
194
|
+
logger.debug('Token exchange request already processed, skipping');
|
|
195
|
+
return { token: undefined };
|
|
130
196
|
}
|
|
131
197
|
this.tokenExchangeId = tokenExchangeRequest.id;
|
|
132
|
-
const userTokenResp = await ((
|
|
133
|
-
if (
|
|
198
|
+
const userTokenResp = await ((_g = this.userTokenClient) === null || _g === void 0 ? void 0 : _g.exchangeTokenAsync((_h = contFlowActivity.from) === null || _h === void 0 ? void 0 : _h.id, this.absOauthConnectionName, contFlowActivity.channelId, tokenExchangeRequest));
|
|
199
|
+
if (userTokenResp && userTokenResp.token) {
|
|
200
|
+
// Cache the token if it's valid
|
|
201
|
+
if (contFlowActivity.channelId && contFlowActivity.from && contFlowActivity.from.id) {
|
|
202
|
+
const cacheKey = this.getCacheKey(context);
|
|
203
|
+
const cacheExpiry = Date.now() + (10 * 60 * 1000); // 10 minutes from now
|
|
204
|
+
this.tokenCache.set(cacheKey, {
|
|
205
|
+
token: userTokenResp,
|
|
206
|
+
expiresAt: cacheExpiry
|
|
207
|
+
});
|
|
208
|
+
logger.info('Token cached for 10 minutes in continueFlow (tokenExchange)');
|
|
209
|
+
}
|
|
134
210
|
logger.info('Token exchanged');
|
|
135
211
|
this.state.flowStarted = false;
|
|
136
|
-
await this.
|
|
212
|
+
await this.storage.write({ [this.getFlowStateKey(context)]: this.state });
|
|
137
213
|
return userTokenResp;
|
|
138
214
|
}
|
|
139
215
|
else {
|
|
140
216
|
logger.warn('Token exchange failed');
|
|
141
217
|
this.state.flowStarted = true;
|
|
142
|
-
return {
|
|
218
|
+
return { token: undefined };
|
|
143
219
|
}
|
|
144
220
|
}
|
|
145
|
-
return {
|
|
221
|
+
return { token: undefined };
|
|
146
222
|
}
|
|
147
223
|
/**
|
|
148
224
|
* Signs the user out.
|
|
@@ -151,31 +227,81 @@ class OAuthFlow {
|
|
|
151
227
|
*/
|
|
152
228
|
async signOut(context) {
|
|
153
229
|
var _a, _b;
|
|
154
|
-
this.state = await this.getUserState(context);
|
|
155
230
|
await this.initializeTokenClient(context);
|
|
231
|
+
// Clear cached token for this user
|
|
232
|
+
const activity = context.activity;
|
|
233
|
+
if (activity.channelId && activity.from && activity.from.id) {
|
|
234
|
+
const cacheKey = this.getCacheKey(context);
|
|
235
|
+
this.tokenCache.delete(cacheKey);
|
|
236
|
+
logger.info('Cached token cleared for user');
|
|
237
|
+
}
|
|
156
238
|
await ((_a = this.userTokenClient) === null || _a === void 0 ? void 0 : _a.signOut((_b = context.activity.from) === null || _b === void 0 ? void 0 : _b.id, this.absOauthConnectionName, context.activity.channelId));
|
|
157
|
-
this.state
|
|
158
|
-
await this.
|
|
159
|
-
logger.info('User signed out successfully');
|
|
239
|
+
this.state = { flowStarted: false, flowExpires: 0, absOauthConnectionName: this.absOauthConnectionName };
|
|
240
|
+
await this.storage.delete([this.getFlowStateKey(context)]);
|
|
241
|
+
logger.info('User signed out successfully from connection:', this.absOauthConnectionName);
|
|
160
242
|
}
|
|
161
243
|
/**
|
|
162
|
-
* Gets the user state.
|
|
244
|
+
* Gets the user state for the OAuth flow.
|
|
163
245
|
* @param context The turn context.
|
|
164
|
-
* @returns A promise that resolves to the
|
|
246
|
+
* @returns A promise that resolves to the flow state.
|
|
165
247
|
*/
|
|
166
|
-
async
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
return userProfile;
|
|
248
|
+
async getFlowState(context) {
|
|
249
|
+
const key = this.getFlowStateKey(context);
|
|
250
|
+
const data = await this.storage.read([key]);
|
|
251
|
+
const flowState = data[key]; // ?? { flowStarted: false, flowExpires: 0 }
|
|
252
|
+
return flowState;
|
|
172
253
|
}
|
|
254
|
+
/**
|
|
255
|
+
* Sets the flow state for the OAuth flow.
|
|
256
|
+
* @param context The turn context.
|
|
257
|
+
* @param flowState The flow state to set.
|
|
258
|
+
* @returns A promise that resolves when the flow state is set.
|
|
259
|
+
*/
|
|
260
|
+
async setFlowState(context, flowState) {
|
|
261
|
+
const key = this.getFlowStateKey(context);
|
|
262
|
+
await this.storage.write({ [key]: flowState });
|
|
263
|
+
this.state = flowState;
|
|
264
|
+
logger.info('Flow state set:', flowState);
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Initializes the user token client if not already initialized.
|
|
268
|
+
* @param context The turn context used to get authentication credentials.
|
|
269
|
+
*/
|
|
173
270
|
async initializeTokenClient(context) {
|
|
174
271
|
if (this.userTokenClient === undefined || this.userTokenClient === null) {
|
|
175
272
|
const scope = 'https://api.botframework.com';
|
|
176
273
|
const accessToken = await context.adapter.authProvider.getAccessToken(context.adapter.authConfig, scope);
|
|
177
|
-
this.userTokenClient = new
|
|
274
|
+
this.userTokenClient = new userTokenClient_1.UserTokenClient(accessToken, context.adapter.authConfig.clientId);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Generates a cache key for storing user tokens.
|
|
279
|
+
* @param context The turn context containing activity information.
|
|
280
|
+
* @returns The cache key string in format: channelId_userId_connectionName.
|
|
281
|
+
* @throws Will throw an error if required activity properties are missing.
|
|
282
|
+
*/
|
|
283
|
+
getCacheKey(context) {
|
|
284
|
+
const activity = context.activity;
|
|
285
|
+
if (!activity.channelId || !activity.from || !activity.from.id) {
|
|
286
|
+
throw new Error('ChannelId and from.id must be set in the activity for cache key generation');
|
|
287
|
+
}
|
|
288
|
+
return `${activity.channelId}_${activity.from.id}_${this.absOauthConnectionName}`;
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Generates a storage key for persisting OAuth flow state.
|
|
292
|
+
* @param context The turn context containing activity information.
|
|
293
|
+
* @returns The storage key string in format: oauth/channelId/conversationId/userId/flowState.
|
|
294
|
+
* @throws Will throw an error if required activity properties are missing.
|
|
295
|
+
*/
|
|
296
|
+
getFlowStateKey(context) {
|
|
297
|
+
var _a, _b;
|
|
298
|
+
const channelId = context.activity.channelId;
|
|
299
|
+
const conversationId = (_a = context.activity.conversation) === null || _a === void 0 ? void 0 : _a.id;
|
|
300
|
+
const userId = (_b = context.activity.from) === null || _b === void 0 ? void 0 : _b.id;
|
|
301
|
+
if (!channelId || !conversationId || !userId) {
|
|
302
|
+
throw new Error('ChannelId, conversationId, and userId must be set in the activity');
|
|
178
303
|
}
|
|
304
|
+
return `oauth/${channelId}/${userId}/${this.absOauthConnectionName}/flowState`;
|
|
179
305
|
}
|
|
180
306
|
}
|
|
181
307
|
exports.OAuthFlow = OAuthFlow;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oAuthFlow.js","sourceRoot":"","sources":["../../../src/oauth/oAuthFlow.ts"],"names":[],"mappings":";;;AAAA,4DAA4D;AAC5D,kCAAkC;AAClC,wCAAmC;AACnC,gEAAsE;AACtE,2BAQY;AACZ,mDAAmE;AAEnE,MAAM,MAAM,GAAG,IAAA,cAAK,EAAC,mBAAmB,CAAC,CAAA;AAEzC,MAAa,SAAS;IAAtB;QACS,gBAAW,GAAY,KAAK,CAAA;QAC5B,gBAAW,GAAW,CAAC,CAAA;IAChC,CAAC;CAAA;AAHD,8BAGC;AAKD;;GAEG;AACH,MAAa,SAAS;IAoCpB;;;OAGG;IACH,YAAa,SAAoB,EAAE,sBAA8B,EAAE,WAA6B,EAAE,SAAkB,EAAE,QAAiB;QAxBvI;;WAEG;QACH,oBAAe,GAAkB,IAAI,CAAA;QAOrC;;WAEG;QACH,cAAS,GAAW,SAAS,CAAA;QAE7B;;WAEG;QACH,aAAQ,GAAW,OAAO,CAAA;QAOxB,IAAI,CAAC,KAAK,GAAG,IAAI,SAAS,EAAE,CAAA;QAC5B,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;QAC9D,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAA;QACpD,IAAI,CAAC,eAAe,GAAG,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,IAAK,CAAA;QAC3C,IAAI,CAAC,SAAS,GAAG,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,IAAI,CAAC,SAAS,CAAA;QAC5C,IAAI,CAAC,QAAQ,GAAG,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,IAAI,CAAC,QAAQ,CAAA;IAC3C,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,YAAY,CAAE,OAAoB;QAC7C,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAA;QACzC,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAA;QAChD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;QACjC,IAAI,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YAC5D,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,sBAAsB,EAAE,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACnH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;QAC3E,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,SAAS,CAAE,OAAoB;;QAC1C,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QAC7C,IAAI,IAAI,CAAC,sBAAsB,KAAK,EAAE,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;QAC9C,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,yCAAyC,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAA;QACnF,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAA;QAEzC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,sBAAsB,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAU,EAAE,MAAA,OAAO,CAAC,QAAQ,CAAC,IAAI,0CAAE,EAAG,CAAC,CAAA;QACnJ,IAAI,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,MAAK,kCAAkB,CAAC,OAAO,EAAE,CAAC;YACzD,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAA;YAC9B,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAA;YAC1B,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;YACrD,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAA;YAC7D,OAAO,aAAa,CAAA;QACtB,CAAC;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAA;QAC7C,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,UAAU,CAAC,QAAS,EAAE,IAAI,CAAC,sBAAsB,EAAE,OAAO,CAAC,QAAQ,CAAC,wBAAwB,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;QAChM,MAAM,KAAK,GAAe,eAAW,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAA;QAC5H,MAAM,OAAO,CAAC,YAAY,CAAC,kBAAc,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;QAC5D,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAA;QAC7B,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAA;QAC3C,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QACrD,MAAM,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAA;QACtE,OAAO;YACL,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,kCAAkB,CAAC,UAAU;SACtC,CAAA;IACH,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,YAAY,CAAE,OAAoB;;QAC7C,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QAC7C,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAA;QACzC,IAAI,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,WAAW,MAAK,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAM,CAAC,WAAW,EAAE,CAAC;YAC1E,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;YAC3B,IAAI,CAAC,KAAM,CAAC,WAAW,GAAG,KAAK,CAAA;YAC/B,MAAM,OAAO,CAAC,YAAY,CAAC,kBAAc,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC,CAAA;YAC7F,OAAO,EAAE,MAAM,EAAE,kCAAkB,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;QACjE,CAAC;QACD,MAAM,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAA;QACzC,IAAI,gBAAgB,CAAC,IAAI,KAAK,+BAAa,CAAC,OAAO,EAAE,CAAC;YACpD,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAc,CAAA;YACjD,MAAM,MAAM,GAAG,MAAM,CAAA,MAAA,IAAI,CAAC,eAAe,0CAAE,YAAY,CAAC,IAAI,CAAC,sBAAsB,EAAE,gBAAgB,CAAC,SAAU,EAAE,MAAA,gBAAgB,CAAC,IAAI,0CAAE,EAAG,EAAE,SAAS,CAAE,CAAA,CAAA;YACzJ,OAAO,MAAM,CAAA;QACf,CAAC;QAED,IAAI,gBAAgB,CAAC,IAAI,KAAK,+BAAa,CAAC,MAAM,IAAI,gBAAgB,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;YACrG,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAA;YACrD,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,KAAyB,CAAA;YACnE,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAA;YACxC,MAAM,MAAM,GAAG,MAAM,CAAA,MAAA,IAAI,CAAC,eAAe,0CAAE,YAAY,CAAC,IAAI,CAAC,sBAAsB,EAAE,gBAAgB,CAAC,SAAU,EAAE,MAAA,gBAAgB,CAAC,IAAI,0CAAE,EAAG,EAAE,SAAS,CAAE,CAAA,CAAA;YACzJ,OAAO,MAAM,CAAA;QACf,CAAC;QAED,IAAI,gBAAgB,CAAC,IAAI,KAAK,+BAAa,CAAC,MAAM,IAAI,gBAAgB,CAAC,IAAI,KAAK,sBAAsB,EAAE,CAAC;YACvG,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAA;YACvD,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,KAA6B,CAAA;YAC3E,IAAI,IAAI,CAAC,eAAe,KAAK,oBAAoB,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS;gBAC/D,OAAO,EAAE,MAAM,EAAE,kCAAkB,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;YACpE,CAAC;YACD,IAAI,CAAC,eAAe,GAAG,oBAAoB,CAAC,EAAG,CAAA;YAC/C,MAAM,aAAa,GAAG,MAAM,CAAA,MAAA,IAAI,CAAC,eAAe,0CAAE,kBAAkB,CAAC,MAAA,gBAAgB,CAAC,IAAI,0CAAE,EAAG,EAAE,IAAI,CAAC,sBAAsB,EAAE,gBAAgB,CAAC,SAAU,EAAE,oBAAoB,CAAC,CAAA,CAAA;YAChL,IAAI,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,MAAK,kCAAkB,CAAC,OAAO,EAAE,CAAC;gBACzD,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;gBAC9B,IAAI,CAAC,KAAM,CAAC,WAAW,GAAG,KAAK,CAAA;gBAC/B,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;gBACrD,OAAO,aAAa,CAAA;YACtB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;gBACpC,IAAI,CAAC,KAAM,CAAC,WAAW,GAAG,IAAI,CAAA;gBAC9B,OAAO,EAAE,MAAM,EAAE,kCAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;YAChE,CAAC;QACH,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,kCAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;IAChE,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,OAAO,CAAE,OAAoB;;QACxC,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QAC7C,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAA;QACzC,MAAM,CAAA,MAAA,IAAI,CAAC,eAAe,0CAAE,OAAO,CAAC,MAAA,OAAO,CAAC,QAAQ,CAAC,IAAI,0CAAE,EAAY,EAAE,IAAI,CAAC,sBAAsB,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAmB,CAAC,CAAA,CAAA;QAC3I,IAAI,CAAC,KAAM,CAAC,WAAW,GAAG,CAAC,CAAA;QAC3B,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QACrD,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAA;IAC7C,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,YAAY,CAAE,OAAoB;QAC9C,IAAI,WAAW,GAAqB,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QACnF,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACzB,WAAW,GAAG,IAAI,SAAS,EAAE,CAAA;QAC/B,CAAC;QACD,OAAO,WAAW,CAAA;IACpB,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAE,OAAoB;QACvD,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;YACxE,MAAM,KAAK,GAAG,8BAA8B,CAAA;YAC5C,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;YACxG,IAAI,CAAC,eAAe,GAAG,IAAI,mBAAe,CAAC,WAAW,CAAC,CAAA;QACzD,CAAC;IACH,CAAC;CACF;AA3LD,8BA2LC"}
|
|
1
|
+
{"version":3,"file":"oAuthFlow.js","sourceRoot":"","sources":["../../../src/oauth/oAuthFlow.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { AxiosInstance } from 'axios';
|
|
2
|
-
import { SigningResource } from './signingResource';
|
|
3
2
|
import { ConversationReference } from '@microsoft/agents-activity';
|
|
4
|
-
import { TokenExchangeRequest } from './
|
|
5
|
-
import { TokenResponse } from './tokenResponse';
|
|
3
|
+
import { AadResourceUrls, SignInResource, TokenExchangeRequest, TokenOrSinginResourceResponse, TokenResponse, TokenStatus } from './userTokenClient.types';
|
|
6
4
|
/**
|
|
7
5
|
* Client for managing user tokens.
|
|
8
6
|
*/
|
|
9
7
|
export declare class UserTokenClient {
|
|
10
8
|
client: AxiosInstance;
|
|
9
|
+
msAppId: string;
|
|
11
10
|
/**
|
|
12
11
|
* Creates a new instance of UserTokenClient.
|
|
13
12
|
* @param token The token to use for authentication.
|
|
13
|
+
* @param msAppId The Microsoft application ID.
|
|
14
14
|
*/
|
|
15
|
-
constructor(token: string);
|
|
15
|
+
constructor(token: string, appId: string);
|
|
16
16
|
/**
|
|
17
17
|
* Gets the user token.
|
|
18
18
|
* @param connectionName The connection name.
|
|
@@ -32,12 +32,12 @@ export declare class UserTokenClient {
|
|
|
32
32
|
signOut(userId: string, connectionName: string, channelId: string): Promise<void>;
|
|
33
33
|
/**
|
|
34
34
|
* Gets the sign-in resource.
|
|
35
|
-
* @param
|
|
36
|
-
* @param
|
|
35
|
+
* @param msAppId The application ID.
|
|
36
|
+
* @param connectionName The connection name.
|
|
37
37
|
* @param activity The activity.
|
|
38
38
|
* @returns A promise that resolves to the signing resource.
|
|
39
39
|
*/
|
|
40
|
-
getSignInResource(
|
|
40
|
+
getSignInResource(msAppId: string, connectionName: string, conversation: ConversationReference, relatesTo?: ConversationReference): Promise<SignInResource>;
|
|
41
41
|
/**
|
|
42
42
|
* Exchanges the token.
|
|
43
43
|
* @param userId The user ID.
|
|
@@ -47,4 +47,34 @@ export declare class UserTokenClient {
|
|
|
47
47
|
* @returns A promise that resolves to the exchanged token.
|
|
48
48
|
*/
|
|
49
49
|
exchangeTokenAsync(userId: string, connectionName: string, channelId: string, tokenExchangeRequest: TokenExchangeRequest): Promise<TokenResponse>;
|
|
50
|
+
/**
|
|
51
|
+
* Gets the token or sign-in resource.
|
|
52
|
+
* @param userId The user ID.
|
|
53
|
+
* @param connectionName The connection name.
|
|
54
|
+
* @param channelId The channel ID.
|
|
55
|
+
* @param conversation The conversation reference.
|
|
56
|
+
* @param relatesTo The related conversation reference.
|
|
57
|
+
* @param code The code.
|
|
58
|
+
* @param finalRedirect The final redirect URL.
|
|
59
|
+
* @param fwdUrl The forward URL.
|
|
60
|
+
* @returns A promise that resolves to the token or sign-in resource response.
|
|
61
|
+
*/
|
|
62
|
+
getTokenOrSignInResource(userId: string, connectionName: string, channelId: string, conversation: ConversationReference, relatesTo: ConversationReference, code: string, finalRedirect?: string, fwdUrl?: string): Promise<TokenOrSinginResourceResponse>;
|
|
63
|
+
/**
|
|
64
|
+
* Gets the token status.
|
|
65
|
+
* @param userId The user ID.
|
|
66
|
+
* @param channelId The channel ID.
|
|
67
|
+
* @param include The optional include parameter.
|
|
68
|
+
* @returns A promise that resolves to the token status.
|
|
69
|
+
*/
|
|
70
|
+
getTokenStatus(userId: string, channelId: string, include?: string): Promise<TokenStatus[]>;
|
|
71
|
+
/**
|
|
72
|
+
* Gets the AAD tokens.
|
|
73
|
+
* @param userId The user ID.
|
|
74
|
+
* @param connectionName The connection name.
|
|
75
|
+
* @param channelId The channel ID.
|
|
76
|
+
* @param resourceUrls The resource URLs.
|
|
77
|
+
* @returns A promise that resolves to the AAD tokens.
|
|
78
|
+
*/
|
|
79
|
+
getAadTokens(userId: string, connectionName: string, channelId: string, resourceUrls: AadResourceUrls): Promise<Record<string, TokenResponse>>;
|
|
50
80
|
}
|