@globus/sdk 6.0.0-rc.7 → 6.0.0-rc.9
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/cjs/core/authorization/index.js +139 -15
- package/dist/cjs/core/authorization/index.js.map +3 -3
- package/dist/cjs/index.js +322 -142
- package/dist/cjs/index.js.map +4 -4
- package/dist/esm/core/authorization/AuthorizationManager.d.ts +14 -8
- package/dist/esm/core/authorization/AuthorizationManager.d.ts.map +1 -1
- package/dist/esm/core/authorization/AuthorizationManager.js +13 -5
- package/dist/esm/core/authorization/AuthorizationManager.js.map +1 -1
- package/dist/esm/core/authorization/PopupTransport.d.ts +25 -0
- package/dist/esm/core/authorization/PopupTransport.d.ts.map +1 -0
- package/dist/esm/core/authorization/PopupTransport.js +161 -0
- package/dist/esm/core/authorization/PopupTransport.js.map +1 -0
- package/dist/esm/core/authorization/RedirectTransport.d.ts +3 -9
- package/dist/esm/core/authorization/RedirectTransport.d.ts.map +1 -1
- package/dist/esm/core/authorization/RedirectTransport.js +6 -17
- package/dist/esm/core/authorization/RedirectTransport.js.map +1 -1
- package/dist/esm/core/authorization/pkce.d.ts +15 -0
- package/dist/esm/core/authorization/pkce.d.ts.map +1 -1
- package/dist/esm/core/authorization/pkce.js +18 -0
- package/dist/esm/core/authorization/pkce.js.map +1 -1
- package/dist/esm/open-api/types/flows.d.ts +2540 -0
- package/dist/esm/open-api/types/flows.d.ts.map +1 -0
- package/dist/esm/open-api/types/flows.js +6 -0
- package/dist/esm/open-api/types/flows.js.map +1 -0
- package/dist/esm/open-api/types/search.d.ts +28 -4
- package/dist/esm/open-api/types/search.d.ts.map +1 -1
- package/dist/esm/package.json +1 -1
- package/dist/esm/services/flows/index.d.ts +1 -0
- package/dist/esm/services/flows/index.d.ts.map +1 -1
- package/dist/esm/services/flows/index.js.map +1 -1
- package/dist/esm/services/flows/service/flows.d.ts +12 -77
- package/dist/esm/services/flows/service/flows.d.ts.map +1 -1
- package/dist/esm/services/flows/service/flows.js.map +1 -1
- package/dist/esm/services/transfer/index.d.ts +1 -0
- package/dist/esm/services/transfer/index.d.ts.map +1 -1
- package/dist/esm/services/transfer/index.js +1 -0
- package/dist/esm/services/transfer/index.js.map +1 -1
- package/dist/esm/services/transfer/service/roles.d.ts +75 -0
- package/dist/esm/services/transfer/service/roles.d.ts.map +1 -0
- package/dist/esm/services/transfer/service/roles.js +49 -0
- package/dist/esm/services/transfer/service/roles.js.map +1 -0
- package/dist/umd/globus.production.js +2 -2
- package/dist/umd/globus.production.js.map +4 -4
- package/package.json +3 -3
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { Event } from './Event.js';
|
|
2
|
-
import {
|
|
2
|
+
import { GetTokenOptions, RedirectTransport, TransportOptions } from './RedirectTransport.js';
|
|
3
3
|
import { TokenManager } from './TokenManager.js';
|
|
4
4
|
import { AuthorizationRequirementsError, ConsentRequiredError } from '../errors.js';
|
|
5
5
|
import type { JwtUserInfo, Token, TokenResponse, TokenWithRefresh } from '../../services/auth/types.js';
|
|
6
|
+
import { PopupTransport } from './PopupTransport.js';
|
|
6
7
|
declare const TRANSPORTS: {
|
|
7
8
|
redirect: typeof RedirectTransport;
|
|
9
|
+
popup: typeof PopupTransport;
|
|
8
10
|
};
|
|
9
11
|
export type AuthorizationManagerConfiguration = {
|
|
10
12
|
client: string;
|
|
@@ -22,6 +24,10 @@ export type AuthorizationManagerConfiguration = {
|
|
|
22
24
|
* @default MemoryStorage
|
|
23
25
|
*/
|
|
24
26
|
storage?: Storage;
|
|
27
|
+
/**
|
|
28
|
+
* The transport method to use for the authorization flow.
|
|
29
|
+
* @default 'redirect'
|
|
30
|
+
*/
|
|
25
31
|
transport?: keyof typeof TRANSPORTS;
|
|
26
32
|
/**
|
|
27
33
|
* @private
|
|
@@ -158,18 +164,18 @@ export declare class AuthorizationManager {
|
|
|
158
164
|
*/
|
|
159
165
|
login(options?: {
|
|
160
166
|
additionalParams: {};
|
|
161
|
-
}): Promise<
|
|
167
|
+
}): Promise<unknown>;
|
|
162
168
|
/**
|
|
163
169
|
* Prompt the user to authenticate with Globus Auth.
|
|
164
170
|
*/
|
|
165
|
-
prompt(options?: Partial<
|
|
171
|
+
prompt(options?: Partial<TransportOptions>): Promise<unknown>;
|
|
166
172
|
/**
|
|
167
173
|
* This method will attempt to complete the PKCE protocol flow.
|
|
168
174
|
*/
|
|
169
175
|
handleCodeRedirect(options?: {
|
|
170
176
|
shouldReplace?: GetTokenOptions['shouldReplace'];
|
|
171
177
|
includeConsentedScopes?: GetTokenOptions['includeConsentedScopes'];
|
|
172
|
-
additionalParams?:
|
|
178
|
+
additionalParams?: TransportOptions['params'];
|
|
173
179
|
}): Promise<any>;
|
|
174
180
|
/**
|
|
175
181
|
* Handle an error response from a Globus service in the context of this `AuthorizationManager`.
|
|
@@ -182,25 +188,25 @@ export declare class AuthorizationManager {
|
|
|
182
188
|
*/
|
|
183
189
|
handleErrorResponse(response: Record<string, unknown>, options?: {
|
|
184
190
|
execute?: true;
|
|
185
|
-
additionalParams?:
|
|
191
|
+
additionalParams?: TransportOptions['params'];
|
|
186
192
|
} | true): Promise<void>;
|
|
187
193
|
handleErrorResponse(response: Record<string, unknown>, options?: {
|
|
188
194
|
execute?: false;
|
|
189
|
-
additionalParams?:
|
|
195
|
+
additionalParams?: TransportOptions['params'];
|
|
190
196
|
} | false): Promise<() => Promise<void>>;
|
|
191
197
|
/**
|
|
192
198
|
* Process a well-formed Authorization Requirements error response from a Globus service
|
|
193
199
|
* and redirect the user to the Globus Auth login page with the necessary parameters.
|
|
194
200
|
*/
|
|
195
201
|
handleAuthorizationRequirementsError(response: AuthorizationRequirementsError, options?: {
|
|
196
|
-
additionalParams?:
|
|
202
|
+
additionalParams?: TransportOptions['params'];
|
|
197
203
|
}): Promise<void>;
|
|
198
204
|
/**
|
|
199
205
|
* Process a well-formed `ConsentRequired` error response from a Globus service
|
|
200
206
|
* and redirect the user to the Globus Auth login page with the necessary parameters.
|
|
201
207
|
*/
|
|
202
208
|
handleConsentRequiredError(response: ConsentRequiredError, options?: {
|
|
203
|
-
additionalParams?:
|
|
209
|
+
additionalParams?: TransportOptions['params'];
|
|
204
210
|
}): Promise<void>;
|
|
205
211
|
/**
|
|
206
212
|
* Add a Globus Auth token response to storage, if `other_tokens` are present they are also added.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthorizationManager.d.ts","sourceRoot":"","sources":["../../../../src/core/authorization/AuthorizationManager.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,
|
|
1
|
+
{"version":3,"file":"AuthorizationManager.d.ts","sourceRoot":"","sources":["../../../../src/core/authorization/AuthorizationManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,14 +35,14 @@ import { isGlobusAuthTokenResponse, isRefreshToken, oauth2 } from '../../service
|
|
|
35
35
|
import { RESOURCE_SERVERS } from '../../services/auth/config.js';
|
|
36
36
|
import { log } from '../logger.js';
|
|
37
37
|
import { Event } from './Event.js';
|
|
38
|
-
import { RedirectTransport
|
|
38
|
+
import { RedirectTransport } from './RedirectTransport.js';
|
|
39
39
|
import { TokenManager } from './TokenManager.js';
|
|
40
40
|
import { isConsentRequiredError, isAuthorizationRequirementsError, toAuthorizationQueryParams, } from '../errors.js';
|
|
41
41
|
import { MemoryStorage } from '../storage/memory.js';
|
|
42
|
-
|
|
42
|
+
import { PopupTransport } from './PopupTransport.js';
|
|
43
43
|
const TRANSPORTS = {
|
|
44
44
|
redirect: RedirectTransport,
|
|
45
|
-
|
|
45
|
+
popup: PopupTransport,
|
|
46
46
|
};
|
|
47
47
|
const DEFAULT_CONFIGURATION = {
|
|
48
48
|
useRefreshTokens: false,
|
|
@@ -267,7 +267,11 @@ export class AuthorizationManager {
|
|
|
267
267
|
* In the future, it's possible that we may want to support different types of transports.
|
|
268
268
|
*/
|
|
269
269
|
const transport = __classPrivateFieldGet(this, _AuthorizationManager_instances, "m", _AuthorizationManager_buildTransport).call(this, { params: options === null || options === void 0 ? void 0 : options.additionalParams });
|
|
270
|
-
yield transport.send();
|
|
270
|
+
const result = yield transport.send();
|
|
271
|
+
if (isGlobusAuthTokenResponse(result)) {
|
|
272
|
+
this.addTokenResponse(result);
|
|
273
|
+
}
|
|
274
|
+
return result;
|
|
271
275
|
});
|
|
272
276
|
}
|
|
273
277
|
/**
|
|
@@ -277,7 +281,11 @@ export class AuthorizationManager {
|
|
|
277
281
|
return __awaiter(this, void 0, void 0, function* () {
|
|
278
282
|
log('debug', 'AuthorizationManager.prompt');
|
|
279
283
|
const transport = __classPrivateFieldGet(this, _AuthorizationManager_instances, "m", _AuthorizationManager_buildTransport).call(this, options);
|
|
280
|
-
yield transport.send();
|
|
284
|
+
const result = yield transport.send();
|
|
285
|
+
if (isGlobusAuthTokenResponse(result)) {
|
|
286
|
+
this.addTokenResponse(result);
|
|
287
|
+
}
|
|
288
|
+
return result;
|
|
281
289
|
});
|
|
282
290
|
}
|
|
283
291
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthorizationManager.js","sourceRoot":"","sources":["../../../../src/core/authorization/AuthorizationManager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACjG,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,
|
|
1
|
+
{"version":3,"file":"AuthorizationManager.js","sourceRoot":"","sources":["../../../../src/core/authorization/AuthorizationManager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACjG,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAmB,iBAAiB,EAAoB,MAAM,wBAAwB,CAAC;AAC9F,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EACL,sBAAsB,EACtB,gCAAgC,EAGhC,0BAA0B,GAC3B,MAAM,cAAc,CAAC;AAQtB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,UAAU,GAAG;IACjB,QAAQ,EAAE,iBAAiB;IAC3B,KAAK,EAAE,cAAc;CACtB,CAAC;AA6CF,MAAM,qBAAqB,GAAG;IAC5B,gBAAgB,EAAE,KAAK;IACvB,aAAa,EAAE,sBAAsB;IACrC,SAAS,EAAE,UAAmB;CAC/B,CAAC;AAEF,MAAM,4BAA4B,GAAG;IACnC,OAAO,EAAE,IAAI;IACb,gBAAgB,EAAE,SAAS;CAC5B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,OAAO,oBAAoB;IAa/B;;;OAGG;IACH,IAAI,aAAa;QACf,OAAO,uBAAA,IAAI,2CAAe,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,IAAI,aAAa,CAAC,KAAc;QAC9B;;WAEG;QACH,IAAI,KAAK,KAAK,uBAAA,IAAI,2CAAe,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QACD,uBAAA,IAAI,uCAAkB,KAAK,MAAA,CAAC;QAC5B,uBAAA,IAAI,qFAAwB,MAA5B,IAAI,CAA0B,CAAC;IACjC,CAAC;IA8BD,YAAY,aAAgD;QAC1D;;WAEG;;;QAjEL,kDAAgD;QAUhD,8CAAiB,KAAK,EAAC;QA0BvB,WAAM,GAAG;YACP;;;;;;eAMG;YACH,aAAa,EAAE,IAAI,KAAK,CAUtB,eAAe,CAAC;YAClB;;;eAGG;YACH,MAAM,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC;SAC5B,CAAC;QAmWF;;;;WAIG;QACH,qBAAgB,GAAG,CAAC,KAA4B,EAAE,EAAE;YAClD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACvB,uBAAA,IAAI,sFAAyB,MAA7B,IAAI,CAA2B,CAAC;QAClC,CAAC,CAAC;QApWA,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;QACD;;;WAGG;QACH,MAAM,MAAM,GACV,aAAa,CAAC,aAAa,KAAK,KAAK;YACnC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,CAAC,MAAA,aAAa,CAAC,aAAa,mCAAI,qBAAqB,CAAC,aAAa,CAAC,CAAC;QAE3E,IAAI,CAAC,aAAa,iDACb,qBAAqB,GACrB,aAAa,KAChB,MAAM,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC;iBAC/D,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;iBACvB,IAAI,CAAC,GAAG,CAAC,GACb,CAAC;QAEF,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,OAAO,IAAI,IAAI,aAAa,EAAE,CAAC;QAE5D;;;WAGG;QACH,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;YAC9B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE;gBACrE,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBACxB,IAAI,CAAC,MAAM,CAAC,IAA4C,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAClF,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,YAAY,CAAC;YAC7B,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QACH,uBAAA,IAAI,sFAAyB,MAA7B,IAAI,CAA2B,CAAC;IAClC,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;IACzC,CAAC;IAED;;;;;;;;;OASG;IACH,IAAI,IAAI;QACN,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxC,OAAO,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAc,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjF,CAAC;IAED;;;OAGG;IACG,aAAa;;YACjB,GAAG,CAAC,OAAO,EAAE,oCAAoC,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CACrC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBACjC,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC1B,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBAClC,CAAC;gBACD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC,CAAC,CACH,CAAC;YACF,uBAAA,IAAI,sFAAyB,MAA7B,IAAI,CAA2B,CAAC;YAChC,OAAO,MAAM,CAAC;QAChB,CAAC;KAAA;IAED;;;OAGG;IACG,YAAY,CAAC,KAAuB;;YACxC,GAAG,CAAC,OAAO,EAAE,uDAAuD,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC;YAC7F,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,CACrB,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;oBACzB,OAAO,EAAE;wBACP,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM;wBACpC,aAAa,EAAE,KAAK,CAAC,aAAa;wBAClC,UAAU,EAAE,eAAe;qBAC5B;iBACF,CAAC,CACH,CAAC,IAAI,EAAE,CAAC;gBACT,IAAI,yBAAyB,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACxC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;oBAChC,OAAO,QAAQ,CAAC;gBAClB,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,GAAG,CAAC,OAAO,EAAE,uDAAuD,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC;YAC/F,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IAED;;OAEG;IACH,kBAAkB;QAChB,OAAO,IAAI,CAAC,kBAAkB,EAAE,KAAK,IAAI,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;QACvF,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1C,CAAC;IAkBD;;;OAGG;IACH,KAAK;QACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACxC,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC1C,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC7B,CAAC;IA2CD;;;;;;OAMG;IACG,KAAK;6DAAC,OAAO,GAAG,EAAE,gBAAgB,EAAE,EAAE,EAAE;YAC5C,GAAG,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAC;YAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;YACb;;eAEG;YACH,MAAM,SAAS,GAAG,uBAAA,IAAI,6EAAgB,MAApB,IAAI,EAAiB,EAAE,MAAM,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,EAAE,CAAC,CAAC;YAC9E,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;YACtC,IAAI,yBAAyB,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAChC,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;KAAA;IAED;;OAEG;IACG,MAAM,CAAC,OAAmC;;YAC9C,GAAG,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAC;YAC5C,MAAM,SAAS,GAAG,uBAAA,IAAI,6EAAgB,MAApB,IAAI,EAAiB,OAAO,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;YACtC,IAAI,yBAAyB,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAChC,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;KAAA;IAED;;OAEG;IACG,kBAAkB;6DACtB,UAII,EAAE,aAAa,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE;YAEjD,GAAG,CAAC,OAAO,EAAE,yCAAyC,CAAC,CAAC;YACxD,MAAM,QAAQ,GAAG,MAAM,uBAAA,IAAI,6EAAgB,MAApB,IAAI,EAAiB,EAAE,MAAM,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,EAAE,CAAC,CAAC,QAAQ,CAAC;gBAC1F,aAAa,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa;gBACrC,sBAAsB,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,sBAAsB;aACxD,CAAC,CAAC;YACH,IAAI,yBAAyB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxC,GAAG,CACD,OAAO,EACP,sDAAsD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CACjF,CAAC;gBACF,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAClC,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;KAAA;IAmBK,mBAAmB,CACvB,QAAiC,EACjC,OAAwF;;YAExF,MAAM,IAAI,GACR,OAAO,OAAO,KAAK,SAAS;gBAC1B,CAAC,iCACM,4BAA4B,KAC/B,OAAO,EAAE,OAAO,IAEpB,CAAC,iCACM,4BAA4B,GAC5B,OAAO,CACX,CAAC;YACR,GAAG,CACD,OAAO,EACP,uDAAuD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,IAAI,CAAC,OAAO,EAAE,CAC1G,CAAC;YACF,IAAI,OAAO,GAAG,GAAS,EAAE,gDAAE,CAAC,CAAA,CAAC;YAC7B,IAAI,gCAAgC,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC/C,GAAG,CACD,OAAO,EACP,iFAAiF,CAClF,CAAC;gBACF,OAAO,GAAG,GAAS,EAAE;oBACnB,MAAM,IAAI,CAAC,oCAAoC,CAAC,QAAQ,EAAE;wBACxD,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;qBACxC,CAAC,CAAC;gBACL,CAAC,CAAA,CAAC;YACJ,CAAC;YACD,IAAI,sBAAsB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACrC,GAAG,CAAC,OAAO,EAAE,uEAAuE,CAAC,CAAC;gBACtF,OAAO,GAAG,GAAS,EAAE;oBACnB,MAAM,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE;wBAC9C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;qBACxC,CAAC,CAAC;gBACL,CAAC,CAAA,CAAC;YACJ,CAAC;YACD,IAAI,MAAM,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,sBAAsB,EAAE,CAAC;gBACtE,GAAG,CAAC,OAAO,EAAE,uEAAuE,CAAC,CAAC;gBACtF,OAAO,GAAG,GAAS,EAAE;oBACnB,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;gBACtB,CAAC,CAAA,CAAC;YACJ,CAAC;YAED,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YACtE,OAAO,WAAW,CAAC;QACrB,CAAC;KAAA;IAED;;;OAGG;IACG,oCAAoC,CACxC,QAAwC,EACxC,OAA2D;;YAE3D,uBAAA,IAAI,mCAAc,uBAAA,IAAI,6EAAgB,MAApB,IAAI,EAAiB;gBACrC,MAAM,gCACJ,MAAM,EAAE,OAAO,IACZ,0BAA0B,CAAC,QAAQ,CAAC,GACpC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,CAC7B;aACF,CAAC,MAAA,CAAC;YACH,MAAM,uBAAA,IAAI,uCAAW,CAAC,IAAI,EAAE,CAAC;QAC/B,CAAC;KAAA;IAED;;;OAGG;IACG,0BAA0B,CAC9B,QAA8B,EAC9B,OAA2D;;YAE3D,uBAAA,IAAI,mCAAc,uBAAA,IAAI,6EAAgB,MAApB,IAAI,EAAiB;gBACrC,MAAM,EAAE,uBAAA,IAAI,gFAAmB,MAAvB,IAAI,EAAoB,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACnE,MAAM,oBACD,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,CAC7B;aACF,CAAC,MAAA,CAAC;YACH,MAAM,uBAAA,IAAI,uCAAW,CAAC,IAAI,EAAE,CAAC;QAC/B,CAAC;KAAA;IAYD;;;;OAIG;IACG,MAAM;;YACV,GAAG,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAC;YAC5C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,uBAAA,IAAI,0EAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACvF,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,MAAM,UAAU,CAAC;YACjB,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,CAAC;KAAA;CAcF;;IAxQG,GAAG,CAAC,OAAO,EAAE,+CAA+C,CAAC,CAAC;IAC9D,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;QAC9B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,CAAC;AACH,CAAC;;;QAGC,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC;QAC3C,MAAM,KAAK,GAAG,MAAA,IAAI,CAAC,kBAAkB,EAAE,mCAAI,SAAS,CAAC;QACrD,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC;YACvC,eAAe;YACf,KAAK;SACN,CAAC,CAAC;IACL,CAAC;8FAmBkB,MAAc;IAC/B,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACpF,CAAC,uFAEe,OAAmC;;IACjD,MAAM,KAA2B,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,EAAxC,EAAE,MAAM,OAAgC,EAA3B,SAAS,cAAtB,UAAwB,CAAgB,CAAC;IAC/C,MAAM,gBAAgB,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,IAAI,UAAU,CAAC,CAAC;IAEhF,IAAI,eAAe,GAAG,uBAAA,IAAI,gFAAmB,MAAvB,IAAI,EAAoB,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;IAE3F,IAAI,IAAI,CAAC,OAAO,YAAY,aAAa,EAAE,CAAC;QAC1C;;;;;;WAMG;QACH,eAAe,GAAG;YAChB,uCAAuC;YACvC,GAAG,IAAI,GAAG,CACR,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA,MAAA,IAAI,CAAC,aAAa,0CAAE,MAAM,KAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CACjF;SACF,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACd,CAAC;IAED,OAAO,IAAI,gBAAgB,+BACzB,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EACjC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,EACrC,MAAM,EAAE,eAAe,IACpB,SAAS,KACZ,MAAM,oBACD,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,KAEtB,CAAC;AACL,CAAC,iFA4LY,KAAY;IACvB,GAAG,CAAC,OAAO,EAAE,sDAAsD,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC;IAC5F,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;QACzB,OAAO,EAAE;YACP,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM;YACpC,KAAK,EAAE,KAAK,CAAC,YAAY;SAC1B;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { TransportOptions } from './RedirectTransport.js';
|
|
2
|
+
export type PopupTransportOptions = TransportOptions;
|
|
3
|
+
/**
|
|
4
|
+
* The `PopupTransport` (`popup`) uses a popup window to initiate the OAuth 2.0 using PKCE.
|
|
5
|
+
*
|
|
6
|
+
* When using the `PopupTransport`, the `redirect` parameter should be to a location
|
|
7
|
+
* that will transmit the URL back to the opener. This can be done using `AuthorizationManager.handleCodeRedirect()`, or
|
|
8
|
+
* manually by calling `window.opener.postMessage()`.
|
|
9
|
+
*
|
|
10
|
+
* @experimental
|
|
11
|
+
*/
|
|
12
|
+
export declare class PopupTransport {
|
|
13
|
+
#private;
|
|
14
|
+
constructor(options: PopupTransportOptions);
|
|
15
|
+
/**
|
|
16
|
+
* The `PopupTransport` is supported in environments where the `window` object is available.
|
|
17
|
+
*/
|
|
18
|
+
static supported: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* For the redirect transport, sending the request will redirect the user to the authorization endpoint, initiating the OAuth flow.
|
|
21
|
+
*/
|
|
22
|
+
send(): Promise<unknown>;
|
|
23
|
+
getToken(): void;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=PopupTransport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PopupTransport.d.ts","sourceRoot":"","sources":["../../../../src/core/authorization/PopupTransport.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,MAAM,qBAAqB,GAAG,gBAAgB,CAAC;AAIrD;;;;;;;;GAQG;AACH,qBAAa,cAAc;;gBAKb,OAAO,EAAE,qBAAqB;IAO1C;;OAEG;IACH,MAAM,CAAC,SAAS,UAC0E;IAE1F;;OAEG;IACG,IAAI;IA4HV,QAAQ;CAaT"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
11
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
12
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
13
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
14
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
15
|
+
};
|
|
16
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
17
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
18
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
19
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
20
|
+
};
|
|
21
|
+
var _PopupTransport_instances, _PopupTransport_options, _PopupTransport_window, _PopupTransport_getToken;
|
|
22
|
+
import { getAuthorizationEndpoint, oauth2 } from '../../services/auth/index.js';
|
|
23
|
+
import { generateCodeChallenge, generateCodeVerifier, generateState, isSupported, store, } from './pkce.js';
|
|
24
|
+
const MESSAGE_SOURCE = 'globus-sdk';
|
|
25
|
+
/**
|
|
26
|
+
* The `PopupTransport` (`popup`) uses a popup window to initiate the OAuth 2.0 using PKCE.
|
|
27
|
+
*
|
|
28
|
+
* When using the `PopupTransport`, the `redirect` parameter should be to a location
|
|
29
|
+
* that will transmit the URL back to the opener. This can be done using `AuthorizationManager.handleCodeRedirect()`, or
|
|
30
|
+
* manually by calling `window.opener.postMessage()`.
|
|
31
|
+
*
|
|
32
|
+
* @experimental
|
|
33
|
+
*/
|
|
34
|
+
export class PopupTransport {
|
|
35
|
+
constructor(options) {
|
|
36
|
+
_PopupTransport_instances.add(this);
|
|
37
|
+
_PopupTransport_options.set(this, void 0);
|
|
38
|
+
_PopupTransport_window.set(this, null);
|
|
39
|
+
__classPrivateFieldSet(this, _PopupTransport_options, options, "f");
|
|
40
|
+
if (PopupTransport.supported === false) {
|
|
41
|
+
throw new Error('PopupTransport is not supported in this environment.');
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* For the redirect transport, sending the request will redirect the user to the authorization endpoint, initiating the OAuth flow.
|
|
46
|
+
*/
|
|
47
|
+
send() {
|
|
48
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
49
|
+
var _a, _b;
|
|
50
|
+
/**
|
|
51
|
+
* Since we'll be using PKCE, we need to generate a code verifier and challenge
|
|
52
|
+
* for the OAuth handshake.
|
|
53
|
+
*/
|
|
54
|
+
const verifier = generateCodeVerifier();
|
|
55
|
+
const challenge = yield generateCodeChallenge(verifier);
|
|
56
|
+
/**
|
|
57
|
+
* If there is caller-provided `state`, use it; Otherwise, generate a state parameter.
|
|
58
|
+
*/
|
|
59
|
+
const state = (_b = (_a = __classPrivateFieldGet(this, _PopupTransport_options, "f").params) === null || _a === void 0 ? void 0 : _a['state']) !== null && _b !== void 0 ? _b : generateState();
|
|
60
|
+
/**
|
|
61
|
+
* The verifier and state are stored in session storage so that we can validate
|
|
62
|
+
* the response when we receive it.
|
|
63
|
+
*/
|
|
64
|
+
store.set('code_verifier', verifier);
|
|
65
|
+
store.set('state', state);
|
|
66
|
+
const params = Object.assign({ response_type: 'code', client_id: __classPrivateFieldGet(this, _PopupTransport_options, "f").client, scope: __classPrivateFieldGet(this, _PopupTransport_options, "f").scopes || '', redirect_uri: __classPrivateFieldGet(this, _PopupTransport_options, "f").redirect, state, code_challenge: challenge, code_challenge_method: 'S256' }, (__classPrivateFieldGet(this, _PopupTransport_options, "f").params || {}));
|
|
67
|
+
const url = new URL(getAuthorizationEndpoint());
|
|
68
|
+
url.search = new URLSearchParams(params).toString();
|
|
69
|
+
const promise = new Promise((resolve) => {
|
|
70
|
+
window.addEventListener('message', (e) => __awaiter(this, void 0, void 0, function* () {
|
|
71
|
+
var _a;
|
|
72
|
+
const { data } = e;
|
|
73
|
+
if (e.origin !== window.location.origin || (data === null || data === void 0 ? void 0 : data.source) !== MESSAGE_SOURCE) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
(_a = __classPrivateFieldGet(this, _PopupTransport_window, "f")) === null || _a === void 0 ? void 0 : _a.close();
|
|
77
|
+
const response = yield __classPrivateFieldGet(this, _PopupTransport_instances, "m", _PopupTransport_getToken).call(this, data.url);
|
|
78
|
+
resolve(response);
|
|
79
|
+
}), false);
|
|
80
|
+
});
|
|
81
|
+
__classPrivateFieldSet(this, _PopupTransport_window, window.open(url.toString(), '_blank', 'width=800,height=600'), "f");
|
|
82
|
+
if (!__classPrivateFieldGet(this, _PopupTransport_window, "f")) {
|
|
83
|
+
throw new Error('Unable to open window for PopupTransport.');
|
|
84
|
+
}
|
|
85
|
+
__classPrivateFieldGet(this, _PopupTransport_window, "f").focus();
|
|
86
|
+
return promise;
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
// eslint-disable-next-line class-methods-use-this
|
|
90
|
+
getToken() {
|
|
91
|
+
if (!window.opener) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
window.opener.postMessage({
|
|
95
|
+
source: MESSAGE_SOURCE,
|
|
96
|
+
url: window.location.href,
|
|
97
|
+
}, window.location.origin);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
_PopupTransport_options = new WeakMap(), _PopupTransport_window = new WeakMap(), _PopupTransport_instances = new WeakSet(), _PopupTransport_getToken = function _PopupTransport_getToken(href) {
|
|
101
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
102
|
+
const url = new URL(href);
|
|
103
|
+
const params = new URLSearchParams(url.search);
|
|
104
|
+
/**
|
|
105
|
+
* Check for an error in the OAuth flow.
|
|
106
|
+
* @see https://www.oauth.com/oauth2-servers/pkce/authorization-request/
|
|
107
|
+
*/
|
|
108
|
+
if (params.get('error')) {
|
|
109
|
+
throw new Error(params.get('error_description') || 'An error occurred during the authorization process.');
|
|
110
|
+
}
|
|
111
|
+
const code = params.get('code');
|
|
112
|
+
/**
|
|
113
|
+
* If we don't have a `code` parameter, we can't exchange it for an access token.
|
|
114
|
+
*/
|
|
115
|
+
if (!code)
|
|
116
|
+
return undefined;
|
|
117
|
+
/**
|
|
118
|
+
* Grab the PKCE information from session storage.
|
|
119
|
+
*/
|
|
120
|
+
const state = store.get('state');
|
|
121
|
+
const verifier = store.get('code_verifier');
|
|
122
|
+
/**
|
|
123
|
+
* Now that we have the values in memory, we can remove them from session storage.
|
|
124
|
+
*/
|
|
125
|
+
store.reset();
|
|
126
|
+
/**
|
|
127
|
+
* Validate the `state` parameter matches the preserved state (to prevent CSRF attacks).
|
|
128
|
+
*/
|
|
129
|
+
if (params.get('state') !== state) {
|
|
130
|
+
throw new Error('Invalid State. The received "state" parameter does not match the expected state.');
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Ensure we have a valid code verifier.
|
|
134
|
+
*/
|
|
135
|
+
if (!verifier) {
|
|
136
|
+
throw new Error('Invalid Code Verifier');
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Prepare the payload for the PKCE token exchange.
|
|
140
|
+
*/
|
|
141
|
+
const payload = {
|
|
142
|
+
code,
|
|
143
|
+
client_id: __classPrivateFieldGet(this, _PopupTransport_options, "f").client,
|
|
144
|
+
/**
|
|
145
|
+
* Retrieve the code verifier from session storage.
|
|
146
|
+
*/
|
|
147
|
+
code_verifier: verifier,
|
|
148
|
+
redirect_uri: __classPrivateFieldGet(this, _PopupTransport_options, "f").redirect,
|
|
149
|
+
grant_type: 'authorization_code',
|
|
150
|
+
};
|
|
151
|
+
const response = yield (yield oauth2.token.exchange({
|
|
152
|
+
payload,
|
|
153
|
+
})).json();
|
|
154
|
+
return response;
|
|
155
|
+
});
|
|
156
|
+
};
|
|
157
|
+
/**
|
|
158
|
+
* The `PopupTransport` is supported in environments where the `window` object is available.
|
|
159
|
+
*/
|
|
160
|
+
PopupTransport.supported = isSupported() && 'window' in globalThis && typeof globalThis.window.open === 'function';
|
|
161
|
+
//# sourceMappingURL=PopupTransport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PopupTransport.js","sourceRoot":"","sources":["../../../../src/core/authorization/PopupTransport.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,24 +14,18 @@ export type GetTokenOptions = {
|
|
|
14
14
|
*/
|
|
15
15
|
includeConsentedScopes?: boolean;
|
|
16
16
|
};
|
|
17
|
-
export type
|
|
17
|
+
export type TransportOptions = Pick<AuthorizationManagerConfiguration, 'client' | 'redirect' | 'scopes'> & {
|
|
18
18
|
/**
|
|
19
19
|
* Query parameters to include in the authorization request.
|
|
20
20
|
*
|
|
21
|
-
* The
|
|
21
|
+
* The transport will include all parameters required for a default OAuth PKCE flow, but
|
|
22
22
|
* these parameters can be overridden or extended with this option.
|
|
23
23
|
*/
|
|
24
24
|
params?: {
|
|
25
25
|
[key: string]: string;
|
|
26
26
|
};
|
|
27
27
|
};
|
|
28
|
-
|
|
29
|
-
* @private
|
|
30
|
-
*/
|
|
31
|
-
export declare const KEYS: {
|
|
32
|
-
PKCE_STATE: string;
|
|
33
|
-
PKCE_CODE_VERIFIER: string;
|
|
34
|
-
};
|
|
28
|
+
export type RedirectTransportOptions = TransportOptions;
|
|
35
29
|
export declare class RedirectTransport {
|
|
36
30
|
#private;
|
|
37
31
|
constructor(options: RedirectTransportOptions);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RedirectTransport.d.ts","sourceRoot":"","sources":["../../../../src/core/authorization/RedirectTransport.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RedirectTransport.d.ts","sourceRoot":"","sources":["../../../../src/core/authorization/RedirectTransport.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,2BAA2B,CAAC;AAEnF,MAAM,MAAM,eAAe,GAAG;IAC5B;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;OAMG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,iCAAiC,EACjC,QAAQ,GAAG,UAAU,GAAG,QAAQ,CACjC,GAAG;IACF;;;;;OAKG;IACH,MAAM,CAAC,EAAE;QACP,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;KACvB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,gBAAgB,CAAC;AACxD,qBAAa,iBAAiB;;gBAGhB,OAAO,EAAE,wBAAwB;IAO7C,MAAM,CAAC,SAAS,UAAiB;IAEjC;;OAEG;IACG,IAAI;IAmCV;;;OAGG;IACG,QAAQ,CACZ,OAAO,GAAE,eAAwE;CAwFpF"}
|
|
@@ -20,18 +20,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
20
20
|
};
|
|
21
21
|
var _RedirectTransport_options;
|
|
22
22
|
import { getAuthorizationEndpoint, oauth2 } from '../../services/auth/index.js';
|
|
23
|
-
import { generateCodeChallenge, generateCodeVerifier, generateState, isSupported, } from './pkce.js';
|
|
24
|
-
/**
|
|
25
|
-
* @private
|
|
26
|
-
*/
|
|
27
|
-
export const KEYS = {
|
|
28
|
-
PKCE_STATE: 'pkce_state',
|
|
29
|
-
PKCE_CODE_VERIFIER: 'pkce_code_verifier',
|
|
30
|
-
};
|
|
31
|
-
function resetPKCE() {
|
|
32
|
-
sessionStorage.removeItem(KEYS.PKCE_STATE);
|
|
33
|
-
sessionStorage.removeItem(KEYS.PKCE_CODE_VERIFIER);
|
|
34
|
-
}
|
|
23
|
+
import { generateCodeChallenge, generateCodeVerifier, generateState, isSupported, store, } from './pkce.js';
|
|
35
24
|
export class RedirectTransport {
|
|
36
25
|
constructor(options) {
|
|
37
26
|
_RedirectTransport_options.set(this, void 0);
|
|
@@ -60,8 +49,8 @@ export class RedirectTransport {
|
|
|
60
49
|
* The verifier and state are stored in session storage so that we can validate
|
|
61
50
|
* the response when we receive it.
|
|
62
51
|
*/
|
|
63
|
-
|
|
64
|
-
|
|
52
|
+
store.set('code_verifier', verifier);
|
|
53
|
+
store.set('state', state);
|
|
65
54
|
const params = Object.assign({ response_type: 'code', client_id: __classPrivateFieldGet(this, _RedirectTransport_options, "f").client, scope: __classPrivateFieldGet(this, _RedirectTransport_options, "f").scopes || '', redirect_uri: __classPrivateFieldGet(this, _RedirectTransport_options, "f").redirect, state, code_challenge: challenge, code_challenge_method: 'S256' }, (__classPrivateFieldGet(this, _RedirectTransport_options, "f").params || {}));
|
|
66
55
|
const url = new URL(getAuthorizationEndpoint());
|
|
67
56
|
url.search = new URLSearchParams(params).toString();
|
|
@@ -92,12 +81,12 @@ export class RedirectTransport {
|
|
|
92
81
|
/**
|
|
93
82
|
* Grab the PKCE information from session storage.
|
|
94
83
|
*/
|
|
95
|
-
const state =
|
|
96
|
-
const verifier =
|
|
84
|
+
const state = store.get('state');
|
|
85
|
+
const verifier = store.get('code_verifier');
|
|
97
86
|
/**
|
|
98
87
|
* Now that we have the values in memory, we can remove them from session storage.
|
|
99
88
|
*/
|
|
100
|
-
|
|
89
|
+
store.reset();
|
|
101
90
|
/**
|
|
102
91
|
* Validate the `state` parameter matches the preserved state (to prevent CSRF attacks).
|
|
103
92
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RedirectTransport.js","sourceRoot":"","sources":["../../../../src/core/authorization/RedirectTransport.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,aAAa,EAGb,WAAW,
|
|
1
|
+
{"version":3,"file":"RedirectTransport.js","sourceRoot":"","sources":["../../../../src/core/authorization/RedirectTransport.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,4 +33,19 @@ export type AuthorizationRequestParameters = {
|
|
|
33
33
|
code_challenge: string;
|
|
34
34
|
code_challenge_method: 'S256' | 'plain';
|
|
35
35
|
};
|
|
36
|
+
/**
|
|
37
|
+
* @private
|
|
38
|
+
*/
|
|
39
|
+
export declare const KEYS: {
|
|
40
|
+
PKCE_STATE: string;
|
|
41
|
+
PKCE_CODE_VERIFIER: string;
|
|
42
|
+
};
|
|
43
|
+
type Entries = 'state' | 'code_verifier';
|
|
44
|
+
export declare const store: {
|
|
45
|
+
getKey(key: Entries): string;
|
|
46
|
+
get: (entry: Entries) => string | null;
|
|
47
|
+
set: (entry: Entries, value: string) => void;
|
|
48
|
+
reset: () => void;
|
|
49
|
+
};
|
|
50
|
+
export {};
|
|
36
51
|
//# sourceMappingURL=pkce.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pkce.d.ts","sourceRoot":"","sources":["../../../../src/core/authorization/pkce.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,YAE1B;AA8BD;;;GAGG;AACH,wBAAgB,oBAAoB,WAOnC;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,mBAG3D;AAED,wBAAgB,aAAa,WAI5B;AAED;;GAEG;AACH,MAAM,MAAM,mCAAmC,GAAG;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,oBAAoB,CAAC;CAClC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,8BAA8B,GAAG;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,MAAM,GAAG,OAAO,CAAC;CACzC,CAAC"}
|
|
1
|
+
{"version":3,"file":"pkce.d.ts","sourceRoot":"","sources":["../../../../src/core/authorization/pkce.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,YAE1B;AA8BD;;;GAGG;AACH,wBAAgB,oBAAoB,WAOnC;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,mBAG3D;AAED,wBAAgB,aAAa,WAI5B;AAED;;GAEG;AACH,MAAM,MAAM,mCAAmC,GAAG;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,oBAAoB,CAAC;CAClC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,8BAA8B,GAAG;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,MAAM,GAAG,OAAO,CAAC;CACzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,IAAI;;;CAGhB,CAAC;AAEF,KAAK,OAAO,GAAG,OAAO,GAAG,eAAe,CAAC;AAEzC,eAAO,MAAM,KAAK;gBACJ,OAAO;iBAGN,OAAO;iBACP,OAAO,SAAS,MAAM;;CAKpC,CAAC"}
|
|
@@ -62,4 +62,22 @@ export function generateState() {
|
|
|
62
62
|
.map((v) => CHARSET[v % CHARSET.length])
|
|
63
63
|
.join('');
|
|
64
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* @private
|
|
67
|
+
*/
|
|
68
|
+
export const KEYS = {
|
|
69
|
+
PKCE_STATE: 'pkce_state',
|
|
70
|
+
PKCE_CODE_VERIFIER: 'pkce_code_verifier',
|
|
71
|
+
};
|
|
72
|
+
export const store = {
|
|
73
|
+
getKey(key) {
|
|
74
|
+
return key === 'state' ? KEYS.PKCE_STATE : KEYS.PKCE_CODE_VERIFIER;
|
|
75
|
+
},
|
|
76
|
+
get: (entry) => sessionStorage.getItem(store.getKey(entry)),
|
|
77
|
+
set: (entry, value) => sessionStorage.setItem(store.getKey(entry), value),
|
|
78
|
+
reset: () => {
|
|
79
|
+
sessionStorage.removeItem(KEYS.PKCE_STATE);
|
|
80
|
+
sessionStorage.removeItem(KEYS.PKCE_CODE_VERIFIER);
|
|
81
|
+
},
|
|
82
|
+
};
|
|
65
83
|
//# sourceMappingURL=pkce.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pkce.js","sourceRoot":"","sources":["../../../../src/core/authorization/pkce.ts"],"names":[],"mappings":";;;;;;;;;AAAA,MAAM,UAAU,WAAW;IACzB,OAAO,QAAQ,IAAI,UAAU,CAAC;AAChC,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,WAAW,IAAI,UAAU,CAAC,MAAM;QACrC,CAAC,CAAE,UAAU,CAAC,MAAM,CAAC,SAA+B;QACpD,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;AACxB,CAAC;AAED;;;GAGG;AACH,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,EAAE,CAC/B,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAEzE,SAAe,MAAM,CAAC,KAAa;;QACjC,MAAM,UAAU,GAAG,MAAM,SAAS,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/F,OAAO,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IAC5D,CAAC;CAAA;AAED;;GAEG;AACH,MAAM,OAAO,GAAG,gEAAgE,CAAC;AAEjF;;;GAGG;AACH,MAAM,iBAAiB,GAAG,GAAG,OAAO,MAAM,CAAC;AAC3C;;;GAGG;AACH,MAAM,UAAU,oBAAoB;IAClC;;OAEG;IACH,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;SAC/D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;SAC3D,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAgB,qBAAqB,CAAC,QAAgB;;QAC1D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;CAAA;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;SAC/D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;SACvC,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC"}
|
|
1
|
+
{"version":3,"file":"pkce.js","sourceRoot":"","sources":["../../../../src/core/authorization/pkce.ts"],"names":[],"mappings":"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"}
|