@microsoft/agents-hosting 0.5.4-ga4d0401645 → 0.5.12-g2d752e9b13
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.js +1 -1
- package/dist/src/app/agentApplication.js.map +1 -1
- package/dist/src/app/oauth/authorization.d.ts +1 -0
- package/dist/src/app/oauth/authorization.js +3 -4
- package/dist/src/app/oauth/authorization.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/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 +9 -10
- package/dist/src/oauth/oAuthFlow.js +35 -38
- 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 +3 -3
- package/src/app/adaptiveCards/adaptiveCardsActions.ts +4 -4
- package/src/app/agentApplication.ts +1 -1
- package/src/app/oauth/authorization.ts +6 -8
- 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/cards/cardFactory.ts +2 -3
- package/src/oauth/index.ts +1 -4
- package/src/oauth/oAuthFlow.ts +39 -45
- package/src/oauth/userTokenClient.ts +62 -19
- package/src/oauth/userTokenClient.types.ts +173 -0
- 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/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,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
1
|
+
import { TurnContext, Storage } from '../';
|
|
2
|
+
import { UserTokenClient } from './userTokenClient';
|
|
3
|
+
import { TokenResponse } from './userTokenClient.types';
|
|
4
|
+
export interface FlowState {
|
|
4
5
|
flowStarted: boolean;
|
|
5
6
|
flowExpires: number;
|
|
6
7
|
}
|
|
@@ -8,6 +9,7 @@ export declare class FlowState {
|
|
|
8
9
|
* Manages the OAuth flow
|
|
9
10
|
*/
|
|
10
11
|
export declare class OAuthFlow {
|
|
12
|
+
private storage;
|
|
11
13
|
/**
|
|
12
14
|
* The user token client used for managing user tokens.
|
|
13
15
|
*/
|
|
@@ -15,11 +17,7 @@ export declare class OAuthFlow {
|
|
|
15
17
|
/**
|
|
16
18
|
* The current state of the OAuth flow.
|
|
17
19
|
*/
|
|
18
|
-
state: FlowState
|
|
19
|
-
/**
|
|
20
|
-
* The accessor for managing the flow state in user state.
|
|
21
|
-
*/
|
|
22
|
-
flowStateAccessor: AgentStatePropertyAccessor<FlowState | null>;
|
|
20
|
+
state: FlowState;
|
|
23
21
|
/**
|
|
24
22
|
* The ID of the token exchange request, used to deduplicate requests.
|
|
25
23
|
*/
|
|
@@ -40,7 +38,7 @@ export declare class OAuthFlow {
|
|
|
40
38
|
* Creates a new instance of OAuthFlow.
|
|
41
39
|
* @param userState The user state.
|
|
42
40
|
*/
|
|
43
|
-
constructor(
|
|
41
|
+
constructor(storage: Storage, absOauthConnectionName: string, tokenClient?: UserTokenClient, cardTitle?: string, cardText?: string);
|
|
44
42
|
/**
|
|
45
43
|
* Retrieves the user token from the user token service.
|
|
46
44
|
* @param context The turn context containing the activity information.
|
|
@@ -53,7 +51,7 @@ export declare class OAuthFlow {
|
|
|
53
51
|
* @param context The turn context.
|
|
54
52
|
* @returns A promise that resolves to the user token.
|
|
55
53
|
*/
|
|
56
|
-
beginFlow(context: TurnContext): Promise<TokenResponse>;
|
|
54
|
+
beginFlow(context: TurnContext): Promise<TokenResponse | undefined>;
|
|
57
55
|
/**
|
|
58
56
|
* Continues the OAuth flow.
|
|
59
57
|
* @param context The turn context.
|
|
@@ -73,4 +71,5 @@ export declare class OAuthFlow {
|
|
|
73
71
|
*/
|
|
74
72
|
private getUserState;
|
|
75
73
|
private initializeTokenClient;
|
|
74
|
+
private getFlowStateKey;
|
|
76
75
|
}
|
|
@@ -1,20 +1,13 @@
|
|
|
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
|
*/
|
|
@@ -23,7 +16,8 @@ class OAuthFlow {
|
|
|
23
16
|
* Creates a new instance of OAuthFlow.
|
|
24
17
|
* @param userState The user state.
|
|
25
18
|
*/
|
|
26
|
-
constructor(
|
|
19
|
+
constructor(storage, absOauthConnectionName, tokenClient, cardTitle, cardText) {
|
|
20
|
+
this.storage = storage;
|
|
27
21
|
/**
|
|
28
22
|
* The ID of the token exchange request, used to deduplicate requests.
|
|
29
23
|
*/
|
|
@@ -36,8 +30,7 @@ class OAuthFlow {
|
|
|
36
30
|
* The text of the OAuth card.
|
|
37
31
|
*/
|
|
38
32
|
this.cardText = 'login';
|
|
39
|
-
this.state =
|
|
40
|
-
this.flowStateAccessor = userState.createProperty('flowState');
|
|
33
|
+
this.state = { flowExpires: 0, flowStarted: false };
|
|
41
34
|
this.absOauthConnectionName = absOauthConnectionName;
|
|
42
35
|
this.userTokenClient = tokenClient !== null && tokenClient !== void 0 ? tokenClient : null;
|
|
43
36
|
this.cardTitle = cardTitle !== null && cardTitle !== void 0 ? cardTitle : this.cardTitle;
|
|
@@ -73,26 +66,20 @@ class OAuthFlow {
|
|
|
73
66
|
}
|
|
74
67
|
logger.info('Starting OAuth flow for connectionName:', this.absOauthConnectionName);
|
|
75
68
|
await this.initializeTokenClient(context);
|
|
76
|
-
const
|
|
77
|
-
|
|
69
|
+
const act = context.activity;
|
|
70
|
+
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);
|
|
71
|
+
if (output && output.tokenResponse) {
|
|
78
72
|
this.state.flowStarted = false;
|
|
79
73
|
this.state.flowExpires = 0;
|
|
80
|
-
await this.
|
|
81
|
-
|
|
82
|
-
return tokenResponse;
|
|
74
|
+
await this.storage.write({ [this.getFlowStateKey(context)]: this.state });
|
|
75
|
+
return output.tokenResponse;
|
|
83
76
|
}
|
|
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);
|
|
77
|
+
const oCard = __1.CardFactory.oauthCard(this.absOauthConnectionName, this.cardTitle, this.cardText, output.signInResource);
|
|
87
78
|
await context.sendActivity(__1.MessageFactory.attachment(oCard));
|
|
88
79
|
this.state.flowStarted = true;
|
|
89
80
|
this.state.flowExpires = Date.now() + 30000;
|
|
90
|
-
await this.
|
|
91
|
-
|
|
92
|
-
return {
|
|
93
|
-
token: undefined,
|
|
94
|
-
status: tokenResponse_1.TokenRequestStatus.InProgress
|
|
95
|
-
};
|
|
81
|
+
await this.storage.write({ [this.getFlowStateKey(context)]: this.state });
|
|
82
|
+
return undefined;
|
|
96
83
|
}
|
|
97
84
|
/**
|
|
98
85
|
* Continues the OAuth flow.
|
|
@@ -107,7 +94,7 @@ class OAuthFlow {
|
|
|
107
94
|
logger.warn('Flow expired');
|
|
108
95
|
this.state.flowStarted = false;
|
|
109
96
|
await context.sendActivity(__1.MessageFactory.text('Sign-in session expired. Please try again.'));
|
|
110
|
-
return {
|
|
97
|
+
return { token: undefined };
|
|
111
98
|
}
|
|
112
99
|
const contFlowActivity = context.activity;
|
|
113
100
|
if (contFlowActivity.type === agents_activity_1.ActivityTypes.Message) {
|
|
@@ -126,23 +113,23 @@ class OAuthFlow {
|
|
|
126
113
|
logger.info('Continuing OAuth flow with tokenExchange');
|
|
127
114
|
const tokenExchangeRequest = contFlowActivity.value;
|
|
128
115
|
if (this.tokenExchangeId === tokenExchangeRequest.id) { // dedupe
|
|
129
|
-
return {
|
|
116
|
+
return { token: undefined };
|
|
130
117
|
}
|
|
131
118
|
this.tokenExchangeId = tokenExchangeRequest.id;
|
|
132
119
|
const userTokenResp = await ((_f = this.userTokenClient) === null || _f === void 0 ? void 0 : _f.exchangeTokenAsync((_g = contFlowActivity.from) === null || _g === void 0 ? void 0 : _g.id, this.absOauthConnectionName, contFlowActivity.channelId, tokenExchangeRequest));
|
|
133
|
-
if (
|
|
120
|
+
if (userTokenResp && userTokenResp.token) {
|
|
134
121
|
logger.info('Token exchanged');
|
|
135
122
|
this.state.flowStarted = false;
|
|
136
|
-
await this.
|
|
123
|
+
await this.storage.write({ [this.getFlowStateKey(context)]: this.state });
|
|
137
124
|
return userTokenResp;
|
|
138
125
|
}
|
|
139
126
|
else {
|
|
140
127
|
logger.warn('Token exchange failed');
|
|
141
128
|
this.state.flowStarted = true;
|
|
142
|
-
return {
|
|
129
|
+
return { token: undefined };
|
|
143
130
|
}
|
|
144
131
|
}
|
|
145
|
-
return {
|
|
132
|
+
return { token: undefined };
|
|
146
133
|
}
|
|
147
134
|
/**
|
|
148
135
|
* Signs the user out.
|
|
@@ -155,7 +142,7 @@ class OAuthFlow {
|
|
|
155
142
|
await this.initializeTokenClient(context);
|
|
156
143
|
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
144
|
this.state.flowExpires = 0;
|
|
158
|
-
|
|
145
|
+
this.storage.write({ [this.getFlowStateKey(context)]: this.state });
|
|
159
146
|
logger.info('User signed out successfully');
|
|
160
147
|
}
|
|
161
148
|
/**
|
|
@@ -164,18 +151,28 @@ class OAuthFlow {
|
|
|
164
151
|
* @returns A promise that resolves to the user state.
|
|
165
152
|
*/
|
|
166
153
|
async getUserState(context) {
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
}
|
|
154
|
+
var _a;
|
|
155
|
+
const key = this.getFlowStateKey(context);
|
|
156
|
+
const data = await this.storage.read([key]);
|
|
157
|
+
const userProfile = (_a = data[key]) !== null && _a !== void 0 ? _a : { flowStarted: false, flowExpires: 0 };
|
|
171
158
|
return userProfile;
|
|
172
159
|
}
|
|
173
160
|
async initializeTokenClient(context) {
|
|
174
161
|
if (this.userTokenClient === undefined || this.userTokenClient === null) {
|
|
175
162
|
const scope = 'https://api.botframework.com';
|
|
176
163
|
const accessToken = await context.adapter.authProvider.getAccessToken(context.adapter.authConfig, scope);
|
|
177
|
-
this.userTokenClient = new
|
|
164
|
+
this.userTokenClient = new userTokenClient_1.UserTokenClient(accessToken, context.adapter.authConfig.clientId);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
getFlowStateKey(context) {
|
|
168
|
+
var _a, _b;
|
|
169
|
+
const channelId = context.activity.channelId;
|
|
170
|
+
const conversationId = (_a = context.activity.conversation) === null || _a === void 0 ? void 0 : _a.id;
|
|
171
|
+
const userId = (_b = context.activity.from) === null || _b === void 0 ? void 0 : _b.id;
|
|
172
|
+
if (!channelId || !conversationId || !userId) {
|
|
173
|
+
throw new Error('ChannelId, conversationId, and userId must be set in the activity');
|
|
178
174
|
}
|
|
175
|
+
return `oauth/${channelId}/${conversationId}/${userId}/flowState`;
|
|
179
176
|
}
|
|
180
177
|
}
|
|
181
178
|
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,
|
|
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
|
}
|
|
@@ -9,7 +9,6 @@ exports.UserTokenClient = void 0;
|
|
|
9
9
|
const axios_1 = __importDefault(require("axios"));
|
|
10
10
|
const logger_1 = require("../logger");
|
|
11
11
|
const activityWireCompat_1 = require("../activityWireCompat");
|
|
12
|
-
const tokenResponse_1 = require("./tokenResponse");
|
|
13
12
|
const getProductInfo_1 = require("../getProductInfo");
|
|
14
13
|
const logger = (0, logger_1.debug)('agents:user-token-client');
|
|
15
14
|
/**
|
|
@@ -19,8 +18,10 @@ class UserTokenClient {
|
|
|
19
18
|
/**
|
|
20
19
|
* Creates a new instance of UserTokenClient.
|
|
21
20
|
* @param token The token to use for authentication.
|
|
21
|
+
* @param msAppId The Microsoft application ID.
|
|
22
22
|
*/
|
|
23
|
-
constructor(token) {
|
|
23
|
+
constructor(token, appId) {
|
|
24
|
+
this.msAppId = appId;
|
|
24
25
|
const baseURL = 'https://api.botframework.com';
|
|
25
26
|
const axiosInstance = axios_1.default.create({
|
|
26
27
|
baseURL,
|
|
@@ -45,16 +46,13 @@ class UserTokenClient {
|
|
|
45
46
|
try {
|
|
46
47
|
const params = { connectionName, channelId, userId, code };
|
|
47
48
|
const response = await this.client.get('/api/usertoken/GetToken', { params });
|
|
48
|
-
return
|
|
49
|
+
return response.data;
|
|
49
50
|
}
|
|
50
51
|
catch (error) {
|
|
51
52
|
if (((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) !== 404) {
|
|
52
53
|
logger.error(error);
|
|
53
54
|
}
|
|
54
|
-
return {
|
|
55
|
-
status: tokenResponse_1.TokenRequestStatus.Failed,
|
|
56
|
-
token: undefined
|
|
57
|
-
};
|
|
55
|
+
return { token: undefined };
|
|
58
56
|
}
|
|
59
57
|
}
|
|
60
58
|
/**
|
|
@@ -79,18 +77,18 @@ class UserTokenClient {
|
|
|
79
77
|
}
|
|
80
78
|
/**
|
|
81
79
|
* Gets the sign-in resource.
|
|
82
|
-
* @param
|
|
83
|
-
* @param
|
|
80
|
+
* @param msAppId The application ID.
|
|
81
|
+
* @param connectionName The connection name.
|
|
84
82
|
* @param activity The activity.
|
|
85
83
|
* @returns A promise that resolves to the signing resource.
|
|
86
84
|
*/
|
|
87
|
-
async getSignInResource(
|
|
85
|
+
async getSignInResource(msAppId, connectionName, conversation, relatesTo) {
|
|
88
86
|
try {
|
|
89
87
|
const tokenExchangeState = {
|
|
90
|
-
connectionName
|
|
91
|
-
conversation
|
|
88
|
+
connectionName,
|
|
89
|
+
conversation,
|
|
92
90
|
relatesTo,
|
|
93
|
-
msAppId
|
|
91
|
+
msAppId
|
|
94
92
|
};
|
|
95
93
|
const tokenExchangeStateNormalized = (0, activityWireCompat_1.normalizeTokenExchangeState)(tokenExchangeState);
|
|
96
94
|
const state = Buffer.from(JSON.stringify(tokenExchangeStateNormalized)).toString('base64');
|
|
@@ -115,13 +113,56 @@ class UserTokenClient {
|
|
|
115
113
|
try {
|
|
116
114
|
const params = { userId, connectionName, channelId };
|
|
117
115
|
const response = await this.client.post('/api/usertoken/exchange', tokenExchangeRequest, { params });
|
|
118
|
-
return
|
|
116
|
+
return response.data;
|
|
119
117
|
}
|
|
120
118
|
catch (error) {
|
|
121
119
|
logger.error(error);
|
|
122
|
-
return {
|
|
120
|
+
return { token: undefined };
|
|
123
121
|
}
|
|
124
122
|
}
|
|
123
|
+
/**
|
|
124
|
+
* Gets the token or sign-in resource.
|
|
125
|
+
* @param userId The user ID.
|
|
126
|
+
* @param connectionName The connection name.
|
|
127
|
+
* @param channelId The channel ID.
|
|
128
|
+
* @param conversation The conversation reference.
|
|
129
|
+
* @param relatesTo The related conversation reference.
|
|
130
|
+
* @param code The code.
|
|
131
|
+
* @param finalRedirect The final redirect URL.
|
|
132
|
+
* @param fwdUrl The forward URL.
|
|
133
|
+
* @returns A promise that resolves to the token or sign-in resource response.
|
|
134
|
+
*/
|
|
135
|
+
async getTokenOrSignInResource(userId, connectionName, channelId, conversation, relatesTo, code, finalRedirect = '', fwdUrl = '') {
|
|
136
|
+
const state = Buffer.from(JSON.stringify({ conversation, relatesTo, connectionName, msAppId: this.msAppId })).toString('base64');
|
|
137
|
+
const params = { userId, connectionName, channelId, state, code, finalRedirect, fwdUrl };
|
|
138
|
+
const response = await this.client.get('/api/usertoken/GetTokenOrSignInResource', { params });
|
|
139
|
+
return response.data;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Gets the token status.
|
|
143
|
+
* @param userId The user ID.
|
|
144
|
+
* @param channelId The channel ID.
|
|
145
|
+
* @param include The optional include parameter.
|
|
146
|
+
* @returns A promise that resolves to the token status.
|
|
147
|
+
*/
|
|
148
|
+
async getTokenStatus(userId, channelId, include = null) {
|
|
149
|
+
const params = { userId, channelId, include };
|
|
150
|
+
const response = await this.client.get('/api/usertoken/GetTokenStatus', { params });
|
|
151
|
+
return response.data;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Gets the AAD tokens.
|
|
155
|
+
* @param userId The user ID.
|
|
156
|
+
* @param connectionName The connection name.
|
|
157
|
+
* @param channelId The channel ID.
|
|
158
|
+
* @param resourceUrls The resource URLs.
|
|
159
|
+
* @returns A promise that resolves to the AAD tokens.
|
|
160
|
+
*/
|
|
161
|
+
async getAadTokens(userId, connectionName, channelId, resourceUrls) {
|
|
162
|
+
const params = { userId, connectionName, channelId };
|
|
163
|
+
const response = await this.client.post('/api/usertoken/GetAadTokens', resourceUrls, { params });
|
|
164
|
+
return response.data;
|
|
165
|
+
}
|
|
125
166
|
}
|
|
126
167
|
exports.UserTokenClient = UserTokenClient;
|
|
127
168
|
//# sourceMappingURL=userTokenClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userTokenClient.js","sourceRoot":"","sources":["../../../src/oauth/userTokenClient.ts"],"names":[],"mappings":";AAAA,4DAA4D;AAC5D,kCAAkC;;;;;;AAElC,kDAA4C;
|
|
1
|
+
{"version":3,"file":"userTokenClient.js","sourceRoot":"","sources":["../../../src/oauth/userTokenClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { CardAction } from '@microsoft/agents-activity';
|
|
2
|
+
/**
|
|
3
|
+
* Represents the response containing OAuth token information.
|
|
4
|
+
* This interface encapsulates all data related to an OAuth token response.
|
|
5
|
+
*/
|
|
6
|
+
export interface TokenResponse {
|
|
7
|
+
/**
|
|
8
|
+
* The OAuth token string, or undefined if no token is available.
|
|
9
|
+
*/
|
|
10
|
+
token: string | undefined;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Represents a request for exchanging tokens.
|
|
14
|
+
* This interface defines the structure of a token exchange request, including the URI, token, and ID.
|
|
15
|
+
*/
|
|
16
|
+
export interface TokenExchangeRequest {
|
|
17
|
+
/**
|
|
18
|
+
* The URI for the token exchange request.
|
|
19
|
+
*/
|
|
20
|
+
uri?: string;
|
|
21
|
+
/**
|
|
22
|
+
* The token to be exchanged.
|
|
23
|
+
*/
|
|
24
|
+
token?: string;
|
|
25
|
+
/**
|
|
26
|
+
* The ID associated with the token exchange request.
|
|
27
|
+
*/
|
|
28
|
+
id?: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Represents a resource for exchanging tokens.
|
|
32
|
+
* This interface defines the structure of a token exchange resource, including its ID, URI, and provider ID.
|
|
33
|
+
*/
|
|
34
|
+
export interface TokenExchangeResource {
|
|
35
|
+
/**
|
|
36
|
+
* The ID of the token exchange resource.
|
|
37
|
+
*/
|
|
38
|
+
id?: string;
|
|
39
|
+
/**
|
|
40
|
+
* The URI of the token exchange resource.
|
|
41
|
+
*/
|
|
42
|
+
uri?: string;
|
|
43
|
+
/**
|
|
44
|
+
* The provider ID for the token exchange resource.
|
|
45
|
+
*/
|
|
46
|
+
providerId?: string;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Represents a resource for posting tokens.
|
|
50
|
+
* This interface defines the structure of a token post resource, including its SAS URL.
|
|
51
|
+
*/
|
|
52
|
+
export interface TokenPostResource {
|
|
53
|
+
/**
|
|
54
|
+
* The SAS URL for the token post resource.
|
|
55
|
+
*/
|
|
56
|
+
sasUrl?: string;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Represents a resource for signing in.
|
|
60
|
+
* This interface defines the structure of a sign-in resource, including the sign-in link, token exchange resource, and token post resource.
|
|
61
|
+
*/
|
|
62
|
+
export interface SignInResource {
|
|
63
|
+
/**
|
|
64
|
+
* The link for signing in.
|
|
65
|
+
*/
|
|
66
|
+
signInLink: string;
|
|
67
|
+
/**
|
|
68
|
+
* The resource for token exchange.
|
|
69
|
+
*/
|
|
70
|
+
tokenExchangeResource: TokenExchangeResource;
|
|
71
|
+
/**
|
|
72
|
+
* The resource for token post.
|
|
73
|
+
*/
|
|
74
|
+
tokenPostResource: TokenPostResource;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Represents an OAuth card.
|
|
78
|
+
* This interface defines the structure of an OAuth card, including its buttons, connection name, text, and associated resources.
|
|
79
|
+
*/
|
|
80
|
+
export interface OAuthCard {
|
|
81
|
+
/**
|
|
82
|
+
* The buttons associated with the OAuth card.
|
|
83
|
+
*/
|
|
84
|
+
buttons: CardAction[];
|
|
85
|
+
/**
|
|
86
|
+
* The connection name for the OAuth card.
|
|
87
|
+
*/
|
|
88
|
+
connectionName: string;
|
|
89
|
+
/**
|
|
90
|
+
* The text content of the OAuth card.
|
|
91
|
+
*/
|
|
92
|
+
text: string;
|
|
93
|
+
/**
|
|
94
|
+
* The token exchange resource for the OAuth card.
|
|
95
|
+
*/
|
|
96
|
+
tokenExchangeResource: TokenExchangeResource;
|
|
97
|
+
/**
|
|
98
|
+
* The token post resource for the OAuth card.
|
|
99
|
+
*/
|
|
100
|
+
tokenPostResource: TokenPostResource;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Represents a response containing either a token or a sign-in resource.
|
|
104
|
+
* This interface defines the structure of a response that includes a token response and a sign-in resource.
|
|
105
|
+
*/
|
|
106
|
+
export interface TokenOrSinginResourceResponse {
|
|
107
|
+
/**
|
|
108
|
+
* The token response containing OAuth token information.
|
|
109
|
+
*/
|
|
110
|
+
tokenResponse: TokenResponse;
|
|
111
|
+
/**
|
|
112
|
+
* The sign-in resource containing sign-in and token exchange information.
|
|
113
|
+
*/
|
|
114
|
+
signInResource: SignInResource;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Represents the status of a token.
|
|
118
|
+
* This interface defines the structure of a token status, including channel ID, connection name, and other metadata.
|
|
119
|
+
*/
|
|
120
|
+
export interface TokenStatus {
|
|
121
|
+
/**
|
|
122
|
+
* The ID of the channel associated with the token.
|
|
123
|
+
*/
|
|
124
|
+
channelId: string;
|
|
125
|
+
/**
|
|
126
|
+
* The connection name associated with the token.
|
|
127
|
+
*/
|
|
128
|
+
connectionName: string;
|
|
129
|
+
/**
|
|
130
|
+
* Indicates whether a token is available.
|
|
131
|
+
*/
|
|
132
|
+
hasToken: boolean;
|
|
133
|
+
/**
|
|
134
|
+
* The display name of the service provider.
|
|
135
|
+
*/
|
|
136
|
+
serviceProviderDisplayName: string;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Represents a collection of Azure Active Directory (AAD) resource URLs.
|
|
140
|
+
* This interface defines the structure of a collection of resource URLs.
|
|
141
|
+
*/
|
|
142
|
+
export interface AadResourceUrls {
|
|
143
|
+
/**
|
|
144
|
+
* An array of resource URLs.
|
|
145
|
+
*/
|
|
146
|
+
resourceUrls: string[];
|
|
147
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"userTokenClient.types.js","sourceRoot":"","sources":["../../../src/oauth/userTokenClient.types.ts"],"names":[],"mappings":";AAAA,4DAA4D;AAC5D,kCAAkC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "@microsoft/agents-hosting",
|
|
4
|
-
"version": "0.5.
|
|
4
|
+
"version": "0.5.12-g2d752e9b13",
|
|
5
5
|
"homepage": "https://github.com/microsoft/Agents-for-js",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
"main": "dist/src/index.js",
|
|
20
20
|
"types": "dist/src/index.d.ts",
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@azure/msal-node": "^3.
|
|
23
|
-
"@microsoft/agents-activity": "0.5.
|
|
22
|
+
"@azure/msal-node": "^3.6.0",
|
|
23
|
+
"@microsoft/agents-activity": "0.5.12-g2d752e9b13",
|
|
24
24
|
"axios": "^1.9.0",
|
|
25
25
|
"debug": "^4.3.7",
|
|
26
26
|
"jsonwebtoken": "^9.0.2",
|