@globus/sdk 3.0.0-alpha.15 → 3.0.0-alpha.16
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/cjs/lib/core/authorization/AuthorizationManager.d.ts +16 -5
- package/cjs/lib/core/authorization/AuthorizationManager.d.ts.map +1 -1
- package/cjs/lib/core/authorization/AuthorizationManager.js +27 -12
- package/cjs/lib/core/authorization/AuthorizationManager.js.map +1 -1
- package/cjs/lib/core/authorization/RedirectTransport.d.ts +4 -0
- package/cjs/lib/core/authorization/RedirectTransport.d.ts.map +1 -1
- package/cjs/lib/core/authorization/RedirectTransport.js +16 -0
- package/cjs/lib/core/authorization/RedirectTransport.js.map +1 -1
- package/cjs/lib/core/authorization/TokenLookup.d.ts +1 -1
- package/cjs/lib/core/authorization/TokenLookup.d.ts.map +1 -1
- package/cjs/lib/core/authorization/TokenLookup.js.map +1 -1
- package/cjs/lib/core/authorization/tokens.js.map +1 -1
- package/cjs/lib/core/logger.d.ts +2 -2
- package/cjs/lib/core/logger.d.ts.map +1 -1
- package/cjs/lib/core/logger.js +3 -3
- package/cjs/lib/core/logger.js.map +1 -1
- package/cjs/lib/services/auth/index.d.ts +1 -19
- package/cjs/lib/services/auth/index.d.ts.map +1 -1
- package/cjs/lib/services/auth/index.js.map +1 -1
- package/cjs/lib/services/auth/service/oauth2/index.d.ts +3 -0
- package/cjs/lib/services/auth/service/oauth2/index.d.ts.map +1 -1
- package/cjs/lib/services/auth/service/oauth2/index.js +11 -1
- package/cjs/lib/services/auth/service/oauth2/index.js.map +1 -1
- package/cjs/lib/services/auth/types.d.ts +40 -12
- package/cjs/lib/services/auth/types.d.ts.map +1 -1
- package/esm/lib/core/authorization/AuthorizationManager.d.ts +16 -5
- package/esm/lib/core/authorization/AuthorizationManager.d.ts.map +1 -1
- package/esm/lib/core/authorization/AuthorizationManager.js +27 -12
- package/esm/lib/core/authorization/AuthorizationManager.js.map +1 -1
- package/esm/lib/core/authorization/RedirectTransport.d.ts +4 -0
- package/esm/lib/core/authorization/RedirectTransport.d.ts.map +1 -1
- package/esm/lib/core/authorization/RedirectTransport.js +16 -0
- package/esm/lib/core/authorization/RedirectTransport.js.map +1 -1
- package/esm/lib/core/authorization/TokenLookup.d.ts +1 -1
- package/esm/lib/core/authorization/TokenLookup.d.ts.map +1 -1
- package/esm/lib/core/authorization/TokenLookup.js.map +1 -1
- package/esm/lib/core/authorization/tokens.js.map +1 -1
- package/esm/lib/core/logger.d.ts +2 -2
- package/esm/lib/core/logger.d.ts.map +1 -1
- package/esm/lib/core/logger.js +3 -3
- package/esm/lib/core/logger.js.map +1 -1
- package/esm/lib/services/auth/index.d.ts +1 -19
- package/esm/lib/services/auth/index.d.ts.map +1 -1
- package/esm/lib/services/auth/index.js.map +1 -1
- package/esm/lib/services/auth/service/oauth2/index.d.ts +3 -0
- package/esm/lib/services/auth/service/oauth2/index.d.ts.map +1 -1
- package/esm/lib/services/auth/service/oauth2/index.js +10 -0
- package/esm/lib/services/auth/service/oauth2/index.js.map +1 -1
- package/esm/lib/services/auth/types.d.ts +40 -12
- package/esm/lib/services/auth/types.d.ts.map +1 -1
- package/package.json +3 -2
- package/umd/globus.production.js +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type IConfig from 'js-pkce/dist/IConfig';
|
|
2
|
-
import { Token, TokenResponse, TokenWithRefresh } from '../../services/auth/index.js';
|
|
3
2
|
import { Event } from './Event.js';
|
|
4
3
|
import { TokenLookup } from './TokenLookup.js';
|
|
5
4
|
import { AuthorizationRequirementsError, ConsentRequiredError } from '../errors.js';
|
|
5
|
+
import type { JwtUserInfo, Token, TokenResponse, TokenWithRefresh } from '../../services/auth/types.js';
|
|
6
6
|
export type AuthorizationManagerConfiguration = {
|
|
7
7
|
client: IConfig['client_id'];
|
|
8
8
|
scopes: IConfig['requested_scopes'];
|
|
@@ -25,7 +25,7 @@ export declare class AuthorizationManager {
|
|
|
25
25
|
#private;
|
|
26
26
|
configuration: AuthorizationManagerConfiguration;
|
|
27
27
|
/**
|
|
28
|
-
* The `AuthorizationManager` is
|
|
28
|
+
* The `AuthorizationManager` is considered `authenticated` if it has a valid Globus Auth token.
|
|
29
29
|
* It does not necessarily mean that it has a valid token for a specific resource server.
|
|
30
30
|
*/
|
|
31
31
|
get authenticated(): boolean;
|
|
@@ -58,10 +58,21 @@ export declare class AuthorizationManager {
|
|
|
58
58
|
};
|
|
59
59
|
constructor(configuration: AuthorizationManagerConfiguration);
|
|
60
60
|
/**
|
|
61
|
-
*
|
|
62
|
-
*
|
|
61
|
+
* The user information decoded from the `id_token` (JWT) of the current Globus Auth token.
|
|
62
|
+
* This method can be used instead of `auth.oauth2.userinfo` to get the user information without an additional request.
|
|
63
|
+
*
|
|
64
|
+
* **IMPORTANT**: The `id_token` can only be processed if the `openid` scope is requested during the authorization process.
|
|
65
|
+
*
|
|
66
|
+
* Additionally, the `profile` and `email` scopes are required to get the full user information.
|
|
67
|
+
*
|
|
68
|
+
* @see {@link https://docs.globus.org/api/auth/reference/#oidc_userinfo_endpoint}
|
|
63
69
|
*/
|
|
64
|
-
|
|
70
|
+
get user(): JwtUserInfo | null;
|
|
71
|
+
/**
|
|
72
|
+
* Start the silent refresh process for the instance.
|
|
73
|
+
* @todo Add interval support for the silent refresh.
|
|
74
|
+
*/
|
|
75
|
+
startSilentRefresh(): void;
|
|
65
76
|
/**
|
|
66
77
|
* Use the `refresh_token` attribute of a token to obtain a new access token.
|
|
67
78
|
* @param token The well-formed token with a `refresh_token` attribute.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthorizationManager.d.ts","sourceRoot":"","sources":["../../../../../src/lib/core/authorization/AuthorizationManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AuthorizationManager.d.ts","sourceRoot":"","sources":["../../../../../src/lib/core/authorization/AuthorizationManager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAahD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAGL,8BAA8B,EAC9B,oBAAoB,EACrB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EACV,WAAW,EACX,KAAK,EACL,aAAa,EACb,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,MAAM,iCAAiC,GAAG;IAC9C,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7B,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACpC,QAAQ,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAClC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;CAChC,CAAC;AAOF;;GAEG;AACH,qBAAa,oBAAoB;;IAG/B,aAAa,EAAE,iCAAiC,CAAC;IAIjD;;;OAGG;IACH,IAAI,aAAa,IAOQ,OAAO,CAL/B;IAED;;OAEG;IACH,IAAI,aAAa,CAAC,KAAK,EAAE,OAAO,EAG/B;IAED,MAAM,EAAE,WAAW,CAAC;IAEpB,MAAM;QACJ;;;;;;WAMG;;YAIC;;;eAGG;6BACc,OAAO;;;QAI5B;;;WAGG;;MAEH;gBAEU,aAAa,EAAE,iCAAiC;IA6B5D;;;;;;;;;OASG;IACH,IAAI,IAAI,uBAGP;IAED;;;OAGG;IACH,kBAAkB;IAsBlB;;;OAGG;IACG,YAAY,CAAC,KAAK,EAAE,gBAAgB;IAoB1C,kBAAkB;IAIlB,kBAAkB;IA0BlB;;;OAGG;IACH,KAAK;IAoCL;;OAEG;IACH,KAAK;IAUC,kBAAkB;IAYxB;;;;;;OAMG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI;IAC5E,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,KAAK,GAAG,MAAM,IAAI;IAyBnF;;;OAGG;IACH,oCAAoC,CAAC,QAAQ,EAAE,8BAA8B;IAe7E;;;OAGG;IACH,0BAA0B,CAAC,QAAQ,EAAE,oBAAoB;IAOzD;;;;OAIG;IACH,gBAAgB,UAAW,KAAK,GAAG,aAAa,UAM9C;IAEF;;;;OAIG;IACG,MAAM;CAoBb"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _AuthorizationManager_instances, _AuthorizationManager_transport, _AuthorizationManager_authenticated,
|
|
2
|
+
var _AuthorizationManager_instances, _AuthorizationManager_transport, _AuthorizationManager_authenticated, _AuthorizationManager_silentRefreshTokens, _AuthorizationManager_checkAuthorizationState, _AuthorizationManager_bootstrapFromStorageState, _AuthorizationManager_emitAuthenticatedState, _AuthorizationManager_withOfflineAccess, _AuthorizationManager_buildTransport, _AuthorizationManager_revokeToken;
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.AuthorizationManager = void 0;
|
|
5
5
|
const tslib_1 = require("tslib");
|
|
6
|
+
const jwt_decode_1 = require("jwt-decode");
|
|
6
7
|
const index_js_1 = require("../../services/auth/index.js");
|
|
7
8
|
const index_js_2 = require("../storage/index.js");
|
|
8
9
|
const logger_js_1 = require("../logger.js");
|
|
@@ -19,7 +20,7 @@ const DEFAULT_CONFIGURATION = {
|
|
|
19
20
|
*/
|
|
20
21
|
class AuthorizationManager {
|
|
21
22
|
/**
|
|
22
|
-
* The `AuthorizationManager` is
|
|
23
|
+
* The `AuthorizationManager` is considered `authenticated` if it has a valid Globus Auth token.
|
|
23
24
|
* It does not necessarily mean that it has a valid token for a specific resource server.
|
|
24
25
|
*/
|
|
25
26
|
get authenticated() {
|
|
@@ -84,19 +85,33 @@ class AuthorizationManager {
|
|
|
84
85
|
manager: this,
|
|
85
86
|
});
|
|
86
87
|
tslib_1.__classPrivateFieldGet(this, _AuthorizationManager_instances, "m", _AuthorizationManager_bootstrapFromStorageState).call(this);
|
|
87
|
-
this.
|
|
88
|
+
this.startSilentRefresh();
|
|
88
89
|
}
|
|
89
90
|
/**
|
|
90
|
-
*
|
|
91
|
-
*
|
|
91
|
+
* The user information decoded from the `id_token` (JWT) of the current Globus Auth token.
|
|
92
|
+
* This method can be used instead of `auth.oauth2.userinfo` to get the user information without an additional request.
|
|
93
|
+
*
|
|
94
|
+
* **IMPORTANT**: The `id_token` can only be processed if the `openid` scope is requested during the authorization process.
|
|
95
|
+
*
|
|
96
|
+
* Additionally, the `profile` and `email` scopes are required to get the full user information.
|
|
97
|
+
*
|
|
98
|
+
* @see {@link https://docs.globus.org/api/auth/reference/#oidc_userinfo_endpoint}
|
|
92
99
|
*/
|
|
93
|
-
|
|
94
|
-
|
|
100
|
+
get user() {
|
|
101
|
+
const token = this.getGlobusAuthToken();
|
|
102
|
+
return token && token.id_token ? (0, jwt_decode_1.jwtDecode)(token.id_token) : null;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Start the silent refresh process for the instance.
|
|
106
|
+
* @todo Add interval support for the silent refresh.
|
|
107
|
+
*/
|
|
108
|
+
startSilentRefresh() {
|
|
109
|
+
(0, logger_js_1.log)('debug', `AuthorizationManager.startSilentRefresh | useRefreshTokens=${this.configuration.useRefreshTokens}`);
|
|
95
110
|
/**
|
|
96
|
-
* Silent
|
|
111
|
+
* Silent refresh is only supported when using refresh tokens.
|
|
97
112
|
*/
|
|
98
113
|
if (this.configuration.useRefreshTokens) {
|
|
99
|
-
tslib_1.__classPrivateFieldGet(this, _AuthorizationManager_instances, "m",
|
|
114
|
+
tslib_1.__classPrivateFieldGet(this, _AuthorizationManager_instances, "m", _AuthorizationManager_silentRefreshTokens).call(this);
|
|
100
115
|
}
|
|
101
116
|
}
|
|
102
117
|
/**
|
|
@@ -214,7 +229,7 @@ class AuthorizationManager {
|
|
|
214
229
|
revoke() {
|
|
215
230
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
216
231
|
(0, logger_js_1.log)('debug', 'AuthorizationManager.revoke');
|
|
217
|
-
const revocation = Promise.all(this.tokens.getAll().map(
|
|
232
|
+
const revocation = Promise.all(this.tokens.getAll().map(tslib_1.__classPrivateFieldGet(this, _AuthorizationManager_instances, "m", _AuthorizationManager_revokeToken).bind(this)));
|
|
218
233
|
this.reset();
|
|
219
234
|
yield revocation;
|
|
220
235
|
yield this.events.revoke.dispatch();
|
|
@@ -222,8 +237,8 @@ class AuthorizationManager {
|
|
|
222
237
|
}
|
|
223
238
|
}
|
|
224
239
|
exports.AuthorizationManager = AuthorizationManager;
|
|
225
|
-
_AuthorizationManager_transport = new WeakMap(), _AuthorizationManager_authenticated = new WeakMap(), _AuthorizationManager_instances = new WeakSet(),
|
|
226
|
-
(0, logger_js_1.log)('debug', 'AuthorizationManager.#
|
|
240
|
+
_AuthorizationManager_transport = new WeakMap(), _AuthorizationManager_authenticated = new WeakMap(), _AuthorizationManager_instances = new WeakSet(), _AuthorizationManager_silentRefreshTokens = function _AuthorizationManager_silentRefreshTokens() {
|
|
241
|
+
(0, logger_js_1.log)('debug', 'AuthorizationManager.#silentRefreshTokens');
|
|
227
242
|
this.tokens.getAll().forEach((token) => {
|
|
228
243
|
if ((0, index_js_1.isRefreshToken)(token)) {
|
|
229
244
|
this.refreshToken(token);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthorizationManager.js","sourceRoot":"","sources":["../../../../../src/lib/core/authorization/AuthorizationManager.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"AuthorizationManager.js","sourceRoot":"","sources":["../../../../../src/lib/core/authorization/AuthorizationManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,10 @@ export declare class RedirectTransport {
|
|
|
9
9
|
params?: IObject;
|
|
10
10
|
});
|
|
11
11
|
send(): void;
|
|
12
|
+
/**
|
|
13
|
+
* Parse the current URL for the authorization code (`?code=...`) and exchange it for an access token when available.
|
|
14
|
+
* - When the URL is processed and exchanged for an access token, the page is redirected to the current URL without the `?code=...&state=...` parameters.
|
|
15
|
+
*/
|
|
12
16
|
getToken(): Promise<import("js-pkce/dist/ITokenResponse").default | undefined>;
|
|
13
17
|
}
|
|
14
18
|
//# sourceMappingURL=RedirectTransport.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RedirectTransport.d.ts","sourceRoot":"","sources":["../../../../../src/lib/core/authorization/RedirectTransport.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,qBAAa,iBAAiB;;gBAM1B,OAAO,EAAE,OAAO,GAAG;QACjB;;WAEG;QACH,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB;IAWH,IAAI;
|
|
1
|
+
{"version":3,"file":"RedirectTransport.d.ts","sourceRoot":"","sources":["../../../../../src/lib/core/authorization/RedirectTransport.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,qBAAa,iBAAiB;;gBAM1B,OAAO,EAAE,OAAO,GAAG;QACjB;;WAEG;QACH,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB;IAWH,IAAI;IAIJ;;;OAGG;IACG,QAAQ;CA6Bf"}
|
|
@@ -15,15 +15,28 @@ class RedirectTransport {
|
|
|
15
15
|
send() {
|
|
16
16
|
window.location.replace(tslib_1.__classPrivateFieldGet(this, _RedirectTransport_pkce, "f").authorizeUrl(tslib_1.__classPrivateFieldGet(this, _RedirectTransport_params, "f")));
|
|
17
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Parse the current URL for the authorization code (`?code=...`) and exchange it for an access token when available.
|
|
20
|
+
* - When the URL is processed and exchanged for an access token, the page is redirected to the current URL without the `?code=...&state=...` parameters.
|
|
21
|
+
*/
|
|
18
22
|
getToken() {
|
|
19
23
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
20
24
|
const url = new URL(window.location.href);
|
|
21
25
|
const params = new URLSearchParams(url.search);
|
|
26
|
+
/**
|
|
27
|
+
* If we don't have a `code` parameter, we can't exchange it for an access token.
|
|
28
|
+
*/
|
|
22
29
|
if (!params.get('code'))
|
|
23
30
|
return undefined;
|
|
24
31
|
const response = yield tslib_1.__classPrivateFieldGet(this, _RedirectTransport_pkce, "f").exchangeForAccessToken(url.toString());
|
|
32
|
+
/**
|
|
33
|
+
* Remove the `code` and `state` parameters from the URL.
|
|
34
|
+
*/
|
|
25
35
|
params.delete('code');
|
|
26
36
|
params.delete('state');
|
|
37
|
+
/**
|
|
38
|
+
* Update the URL with the new query string.
|
|
39
|
+
*/
|
|
27
40
|
url.search = params.toString();
|
|
28
41
|
/**
|
|
29
42
|
* Resets js-pkce state
|
|
@@ -31,6 +44,9 @@ class RedirectTransport {
|
|
|
31
44
|
*/
|
|
32
45
|
sessionStorage.removeItem('pkce_state');
|
|
33
46
|
sessionStorage.removeItem('pkce_code_verifier');
|
|
47
|
+
/**
|
|
48
|
+
* Redirect the page to the new URL (without the `code` and `state` parameters)/
|
|
49
|
+
*/
|
|
34
50
|
window.location.replace(url);
|
|
35
51
|
return response;
|
|
36
52
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RedirectTransport.js","sourceRoot":"","sources":["../../../../../src/lib/core/authorization/RedirectTransport.ts"],"names":[],"mappings":";;;;;AAAA,8DAA2B;AAI3B,MAAa,iBAAiB;IAK5B,YACE,OAKC;QAVH,0CAAY;QAEZ,oCAAmB,EAAE,EAAC;QAUpB,MAAM,EAAE,MAAM,KAAgB,OAAO,EAAlB,MAAM,kBAAK,OAAO,EAA/B,UAAqB,CAAU,CAAC;QACtC,+BAAA,IAAI,2BAAS,IAAI,iBAAI,mBAChB,MAAM,EACT,MAAA,CAAC;QACH,+BAAA,IAAI,+CACC,MAAM,OACV,CAAC;IACJ,CAAC;IAED,IAAI;QACF,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,+BAAA,IAAI,+BAAM,CAAC,YAAY,CAAC,+BAAA,IAAI,iCAAQ,CAAC,CAAC,CAAC;IACjE,CAAC;
|
|
1
|
+
{"version":3,"file":"RedirectTransport.js","sourceRoot":"","sources":["../../../../../src/lib/core/authorization/RedirectTransport.ts"],"names":[],"mappings":";;;;;AAAA,8DAA2B;AAI3B,MAAa,iBAAiB;IAK5B,YACE,OAKC;QAVH,0CAAY;QAEZ,oCAAmB,EAAE,EAAC;QAUpB,MAAM,EAAE,MAAM,KAAgB,OAAO,EAAlB,MAAM,kBAAK,OAAO,EAA/B,UAAqB,CAAU,CAAC;QACtC,+BAAA,IAAI,2BAAS,IAAI,iBAAI,mBAChB,MAAM,EACT,MAAA,CAAC;QACH,+BAAA,IAAI,+CACC,MAAM,OACV,CAAC;IACJ,CAAC;IAED,IAAI;QACF,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,+BAAA,IAAI,+BAAM,CAAC,YAAY,CAAC,+BAAA,IAAI,iCAAQ,CAAC,CAAC,CAAC;IACjE,CAAC;IAED;;;OAGG;IACG,QAAQ;;YACZ,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC/C;;eAEG;YACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,OAAO,SAAS,CAAC;YAC1C,MAAM,QAAQ,GAAG,MAAM,+BAAA,IAAI,+BAAM,CAAC,sBAAsB,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;YACzE;;eAEG;YACH,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACtB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACvB;;eAEG;YACH,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC/B;;;eAGG;YACH,cAAc,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YACxC,cAAc,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;YAChD;;eAEG;YACH,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC7B,OAAO,QAAQ,CAAC;QAClB,CAAC;KAAA;CACF;AA3DD,8CA2DC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenLookup.d.ts","sourceRoot":"","sources":["../../../../../src/lib/core/authorization/TokenLookup.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TokenLookup.d.ts","sourceRoot":"","sources":["../../../../../src/lib/core/authorization/TokenLookup.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAE1D,qBAAa,WAAW;;gBAGV,OAAO,EAAE;QAAE,OAAO,EAAE,oBAAoB,CAAA;KAAE;IAoBtD,IAAI,IAAI,IAAI,KAAK,GAAG,IAAI,CAEvB;IAED,IAAI,QAAQ,IAAI,KAAK,GAAG,IAAI,CAE3B;IAED,IAAI,KAAK,IAAI,KAAK,GAAG,IAAI,CAExB;IAED,IAAI,MAAM,IAAI,KAAK,GAAG,IAAI,CAEzB;IAED,IAAI,MAAM,IAAI,KAAK,GAAG,IAAI,CAEzB;IAED,IAAI,KAAK,IAAI,KAAK,GAAG,IAAI,CAExB;IAED,IAAI,OAAO,IAAI,KAAK,GAAG,IAAI,CAE1B;IAED,MAAM,IAAI,KAAK,EAAE;CAYlB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenLookup.js","sourceRoot":"","sources":["../../../../../src/lib/core/authorization/TokenLookup.ts"],"names":[],"mappings":";;;;;AAAA,kDAAiD;AACjD,
|
|
1
|
+
{"version":3,"file":"TokenLookup.js","sourceRoot":"","sources":["../../../../../src/lib/core/authorization/TokenLookup.ts"],"names":[],"mappings":";;;;;AAAA,kDAAiD;AACjD,2DAA+D;AAE/D,4CAAsD;AAKtD,MAAa,WAAW;IAGtB,YAAY,OAA0C;;QAFtD,uCAA+B;QAG7B,+BAAA,IAAI,wBAAY,OAAO,CAAC,OAAO,MAAA,CAAC;IAClC,CAAC;IAkBD,IAAI,IAAI;QACN,OAAO,+BAAA,IAAI,+DAAoB,MAAxB,IAAI,EAAqB,oBAAQ,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,+BAAA,IAAI,+DAAoB,MAAxB,IAAI,EAAqB,oBAAQ,CAAC,QAAQ,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,KAAK;QACP,OAAO,+BAAA,IAAI,+DAAoB,MAAxB,IAAI,EAAqB,oBAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,MAAM;QACR,OAAO,+BAAA,IAAI,+DAAoB,MAAxB,IAAI,EAAqB,oBAAQ,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,MAAM;QACR,OAAO,+BAAA,IAAI,+DAAoB,MAAxB,IAAI,EAAqB,oBAAQ,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,KAAK;QACP,OAAO,+BAAA,IAAI,+DAAoB,MAAxB,IAAI,EAAqB,oBAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,OAAO;QACT,OAAO,+BAAA,IAAI,+DAAoB,MAAxB,IAAI,EAAqB,oBAAQ,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,MAAM;QACJ,MAAM,MAAM,GAAG;YACb,IAAI,CAAC,IAAI;YACT,IAAI,CAAC,QAAQ;YACb,IAAI,CAAC,KAAK;YACV,IAAI,CAAC,MAAM;YACX,IAAI,CAAC,MAAM;YACX,IAAI,CAAC,KAAK;YACV,IAAI,CAAC,OAAO;SACb,CAAC;QACF,OAAO,MAAM,CAAC,MAAM,CAAC,kBAAO,CAAC,CAAC;IAChC,CAAC;CACF;AA/DD,kCA+DC;yJAxDqB,OAAgB;;IAClC,MAAM,cAAc,GAAG,MAAA,iBAAM,CAAC,gBAAgB,0CAAG,OAAO,CAAC,CAAC;IAC1D,MAAM,GAAG,GACP,IAAA,qBAAU,GAAE,CAAC,GAAG,CAAC,GAAG,+BAAA,IAAI,4BAAS,CAAC,aAAa,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC,IAAI,MAAM,CAAC;IACxF,IAAI,KAAK,GAAiB,IAAI,CAAC;IAC/B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,IAAA,kBAAO,EAAC,MAAM,CAAC,EAAE,CAAC;YACpB,KAAK,GAAG,MAAM,CAAC;QACjB,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,QAAQ;IACV,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../../../src/lib/core/authorization/tokens.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../../../src/lib/core/authorization/tokens.ts"],"names":[],"mappings":";;;AAAA,kDAAiD;AAIjD,SAAS,YAAY,CAAC,KAAc;IAClC,MAAM,KAAK,GAAG,KAAc,CAAC;IAC7B,OAAO,OAAO,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;AACzD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,KAAa;IAC5C,MAAM,YAAY,GAAG,IAAA,qBAAU,GAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7D,IAAI,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;AACrD,CAAC;AAPD,4CAOC"}
|
package/cjs/lib/core/logger.d.ts
CHANGED
|
@@ -10,10 +10,10 @@ type Logger = {
|
|
|
10
10
|
};
|
|
11
11
|
/**
|
|
12
12
|
* Set the global logger for the SDK.
|
|
13
|
-
* @param
|
|
13
|
+
* @param logMechanism The logger to use.
|
|
14
14
|
* @example `log.setLogger(console)`
|
|
15
15
|
*/
|
|
16
|
-
export declare function setLogger(
|
|
16
|
+
export declare function setLogger(logMechanism: Logger): void;
|
|
17
17
|
/**
|
|
18
18
|
* Set the global log level for the logger.
|
|
19
19
|
* @param severity The severity to set the logger to.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/logger.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,UAAU,6CAA8C,CAAC;AAE/D,KAAK,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5C,KAAK,UAAU,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;AAE/C,KAAK,MAAM,GAAG;IACZ,GAAG,EAAE,UAAU,CAAC;IAChB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB,CAAC;AASF;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/logger.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,UAAU,6CAA8C,CAAC;AAE/D,KAAK,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5C,KAAK,UAAU,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;AAE/C,KAAK,MAAM,GAAG;IACZ,GAAG,EAAE,UAAU,CAAC;IAChB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB,CAAC;AASF;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,YAAY,EAAE,MAAM,QAE7C;AACD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,QAAQ,QAE7C;AACD;;;;;GAKG;AACH,wBAAgB,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,QAazD"}
|
package/cjs/lib/core/logger.js
CHANGED
|
@@ -12,11 +12,11 @@ let logger;
|
|
|
12
12
|
let level = LOG_LEVELS.indexOf('error');
|
|
13
13
|
/**
|
|
14
14
|
* Set the global logger for the SDK.
|
|
15
|
-
* @param
|
|
15
|
+
* @param logMechanism The logger to use.
|
|
16
16
|
* @example `log.setLogger(console)`
|
|
17
17
|
*/
|
|
18
|
-
function setLogger(
|
|
19
|
-
logger =
|
|
18
|
+
function setLogger(logMechanism) {
|
|
19
|
+
logger = logMechanism;
|
|
20
20
|
}
|
|
21
21
|
exports.setLogger = setLogger;
|
|
22
22
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../../src/lib/core/logger.ts"],"names":[],"mappings":";;;AAAA,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAU,CAAC;AAa/D;;GAEG;AACH,IAAI,MAA0B,CAAC;AAC/B;;GAEG;AACH,IAAI,KAAK,GAAW,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAChD;;;;GAIG;AACH,SAAgB,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../../src/lib/core/logger.ts"],"names":[],"mappings":";;;AAAA,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAU,CAAC;AAa/D;;GAEG;AACH,IAAI,MAA0B,CAAC;AAC/B;;GAEG;AACH,IAAI,KAAK,GAAW,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAChD;;;;GAIG;AACH,SAAgB,SAAS,CAAC,YAAoB;IAC5C,MAAM,GAAG,YAAY,CAAC;AACxB,CAAC;AAFD,8BAEC;AACD;;;;GAIG;AACH,SAAgB,WAAW,CAAC,QAAkB;IAC5C,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACvC,CAAC;AAFD,kCAEC;AACD;;;;;GAKG;AACH,SAAgB,GAAG,CAAC,QAAkB,EAAE,GAAG,IAAe;;IACxD,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB;;OAEG;IACH,IAAI,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,KAAK,EAAE,CAAC;QACzC,OAAO;IACT,CAAC;IACD;;OAEG;IACH,MAAM,OAAO,GAAG,MAAA,MAAM,CAAC,QAAQ,CAAC,mCAAI,MAAM,CAAC,GAAG,CAAC;IAC/C,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;AACnB,CAAC;AAbD,kBAaC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as AUTH from './config.js';
|
|
2
|
+
import type { Token, TokenWithRefresh, TokenResponse } from './types.js';
|
|
2
3
|
/**
|
|
3
4
|
* @private
|
|
4
5
|
* @internal
|
|
@@ -8,25 +9,6 @@ export declare function getAuthorizationEndpoint(): string;
|
|
|
8
9
|
export declare function getTokenEndpoint(): string;
|
|
9
10
|
export * as identities from './service/identities.js';
|
|
10
11
|
export * as oauth2 from './service/oauth2/index.js';
|
|
11
|
-
export type Token = {
|
|
12
|
-
access_token: string;
|
|
13
|
-
scope: string;
|
|
14
|
-
expires_in: number;
|
|
15
|
-
token_type: string;
|
|
16
|
-
resource_server: string;
|
|
17
|
-
refresh_token?: string;
|
|
18
|
-
};
|
|
19
|
-
export type TokenWithRefresh = Token & {
|
|
20
|
-
refresh_token: string;
|
|
21
|
-
};
|
|
22
|
-
/**
|
|
23
|
-
* @see https://docs.globus.org/api/auth/reference/#authorization_code_grant_preferred
|
|
24
|
-
*/
|
|
25
|
-
export type TokenResponse = Token & {
|
|
26
|
-
state: string;
|
|
27
|
-
id_token?: string;
|
|
28
|
-
other_tokens?: Token[];
|
|
29
|
-
};
|
|
30
12
|
export declare function isToken(check: unknown): check is Token;
|
|
31
13
|
export declare function isRefreshToken(check: unknown): check is TokenWithRefresh;
|
|
32
14
|
export declare function isGlobusAuthTokenResponse(check: unknown): check is TokenResponse;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/services/auth/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAEpC;;;GAGG;AACH,eAAO,MAAM,MAAM,aAAO,CAAC;AAE3B,wBAAgB,wBAAwB,WAEvC;AAED,wBAAgB,gBAAgB,WAE/B;AAED,OAAO,KAAK,UAAU,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AAEpD,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/services/auth/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAEpC,OAAO,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEzE;;;GAGG;AACH,eAAO,MAAM,MAAM,aAAO,CAAC;AAE3B,wBAAgB,wBAAwB,WAEvC;AAED,wBAAgB,gBAAgB,WAE/B;AAED,OAAO,KAAK,UAAU,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AAEpD,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,KAAK,CAEtD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAExE;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAKhF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/lib/services/auth/index.ts"],"names":[],"mappings":";;;;AAAA;;;;;GAKG;AACH,8CAA0C;AAE1C,0DAAoC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/lib/services/auth/index.ts"],"names":[],"mappings":";;;;AAAA;;;;;GAKG;AACH,8CAA0C;AAE1C,0DAAoC;AAIpC;;;GAGG;AACU,QAAA,MAAM,GAAG,IAAI,CAAC;AAE3B,SAAgB,wBAAwB;IACtC,OAAO,IAAA,cAAK,EAAC,IAAI,CAAC,EAAE,EAAE,sBAAsB,CAAC,CAAC;AAChD,CAAC;AAFD,4DAEC;AAED,SAAgB,gBAAgB;IAC9B,OAAO,IAAA,cAAK,EAAC,IAAI,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC;AAC5C,CAAC;AAFD,4CAEC;AAED,8EAAsD;AACtD,4EAAoD;AAEpD,SAAgB,OAAO,CAAC,KAAc;IACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,cAAc,IAAI,KAAK,CAAC;AAChF,CAAC;AAFD,0BAEC;AAED,SAAgB,cAAc,CAAC,KAAc;IAC3C,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,eAAe,IAAI,KAAK,CAAC;AACtE,CAAC;AAFD,wCAEC;AAED,SAAgB,yBAAyB,CAAC,KAAc;IACtD;;OAEG;IACH,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,iBAAiB,IAAI,KAAK,CAAC;AACxE,CAAC;AALD,8DAKC"}
|
|
@@ -1,2 +1,5 @@
|
|
|
1
|
+
export declare const userinfo: (options?: ({
|
|
2
|
+
payload: never;
|
|
3
|
+
} & import("../../../types.js").BaseServiceMethodOptions) | undefined, sdkOptions?: import("../../../types.js").SDKOptions | undefined) => Promise<Response>;
|
|
1
4
|
export * as token from './token.js';
|
|
2
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/lib/services/auth/service/oauth2/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/lib/services/auth/service/oauth2/index.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,QAAQ;aAYV,KAAK;4JACd,CAAC;AAEH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC"}
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.token = void 0;
|
|
3
|
+
exports.token = exports.userinfo = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
+
const config_js_1 = require("../../config.js");
|
|
6
|
+
const shared_js_1 = require("../../../../services/shared.js");
|
|
7
|
+
exports.userinfo = function (options, sdkOptions) {
|
|
8
|
+
return (0, shared_js_1.serviceRequest)({
|
|
9
|
+
service: config_js_1.ID,
|
|
10
|
+
scope: undefined,
|
|
11
|
+
path: `/v2/oauth2/userinfo`,
|
|
12
|
+
method: shared_js_1.HTTP_METHODS.GET,
|
|
13
|
+
}, options, sdkOptions);
|
|
14
|
+
};
|
|
5
15
|
exports.token = tslib_1.__importStar(require("./token.js"));
|
|
6
16
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/lib/services/auth/service/oauth2/index.ts"],"names":[],"mappings":";;;;AAAA,4DAAoC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/lib/services/auth/service/oauth2/index.ts"],"names":[],"mappings":";;;;AAAA,+CAAqC;AACrC,8DAA8E;AAIjE,QAAA,QAAQ,GAAG,UAAU,OAAQ,EAAE,UAAW;IACrD,OAAO,IAAA,0BAAc,EACnB;QACE,OAAO,EAAE,cAAE;QACX,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,qBAAqB;QAC3B,MAAM,EAAE,wBAAY,CAAC,GAAG;KACzB,EACD,OAAO,EACP,UAAU,CACX,CAAC;AACJ,CAEE,CAAC;AAEH,4DAAoC"}
|
|
@@ -1,15 +1,43 @@
|
|
|
1
|
-
import
|
|
2
|
-
export
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import type { JwtPayload } from 'jwt-decode';
|
|
2
|
+
export type Token = {
|
|
3
|
+
access_token: string;
|
|
4
|
+
scope: string;
|
|
5
|
+
expires_in: number;
|
|
6
|
+
token_type: string;
|
|
7
|
+
resource_server: string;
|
|
8
|
+
refresh_token?: string;
|
|
9
|
+
};
|
|
10
|
+
export type TokenWithRefresh = Token & {
|
|
11
|
+
refresh_token: string;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* @see https://docs.globus.org/api/auth/reference/#authorization_code_grant_preferred
|
|
15
|
+
*/
|
|
16
|
+
export type TokenResponse = Token & {
|
|
17
|
+
state: string;
|
|
7
18
|
/**
|
|
8
|
-
*
|
|
19
|
+
* Only included if your client requests the openid scope during the authorization request.
|
|
9
20
|
*/
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
21
|
+
id_token?: string;
|
|
22
|
+
other_tokens?: Token[];
|
|
23
|
+
};
|
|
24
|
+
type JwtUserIdentity = {
|
|
25
|
+
sub: JwtPayload['sub'];
|
|
26
|
+
organization?: string;
|
|
27
|
+
name?: string;
|
|
28
|
+
identity_provider?: string;
|
|
29
|
+
identity_provider_display_name?: string;
|
|
30
|
+
email?: string;
|
|
31
|
+
last_authentication?: number;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* The properties of the decoded `id_token` are dictated by the scopes requested
|
|
35
|
+
* during the authorization request; `openid profile email` will return a fully
|
|
36
|
+
* populated object, while `openid` will return a minimal object.
|
|
37
|
+
*/
|
|
38
|
+
export type JwtUserInfo = Pick<JwtPayload, 'iss' | 'aud' | 'exp' | 'iat' | 'sub'> & JwtUserIdentity & {
|
|
39
|
+
preferred_username?: string;
|
|
40
|
+
identity_set?: JwtUserIdentity[];
|
|
41
|
+
};
|
|
42
|
+
export {};
|
|
15
43
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/lib/services/auth/types.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/lib/services/auth/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,MAAM,KAAK,GAAG;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG;IACrC,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG;IAClC,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC;CACxB,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,GAC/E,eAAe,GAAG;IAChB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,eAAe,EAAE,CAAC;CAClC,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type IConfig from 'js-pkce/dist/IConfig';
|
|
2
|
-
import { Token, TokenResponse, TokenWithRefresh } from '../../services/auth/index.js';
|
|
3
2
|
import { Event } from './Event.js';
|
|
4
3
|
import { TokenLookup } from './TokenLookup.js';
|
|
5
4
|
import { AuthorizationRequirementsError, ConsentRequiredError } from '../errors.js';
|
|
5
|
+
import type { JwtUserInfo, Token, TokenResponse, TokenWithRefresh } from '../../services/auth/types.js';
|
|
6
6
|
export type AuthorizationManagerConfiguration = {
|
|
7
7
|
client: IConfig['client_id'];
|
|
8
8
|
scopes: IConfig['requested_scopes'];
|
|
@@ -25,7 +25,7 @@ export declare class AuthorizationManager {
|
|
|
25
25
|
#private;
|
|
26
26
|
configuration: AuthorizationManagerConfiguration;
|
|
27
27
|
/**
|
|
28
|
-
* The `AuthorizationManager` is
|
|
28
|
+
* The `AuthorizationManager` is considered `authenticated` if it has a valid Globus Auth token.
|
|
29
29
|
* It does not necessarily mean that it has a valid token for a specific resource server.
|
|
30
30
|
*/
|
|
31
31
|
get authenticated(): boolean;
|
|
@@ -58,10 +58,21 @@ export declare class AuthorizationManager {
|
|
|
58
58
|
};
|
|
59
59
|
constructor(configuration: AuthorizationManagerConfiguration);
|
|
60
60
|
/**
|
|
61
|
-
*
|
|
62
|
-
*
|
|
61
|
+
* The user information decoded from the `id_token` (JWT) of the current Globus Auth token.
|
|
62
|
+
* This method can be used instead of `auth.oauth2.userinfo` to get the user information without an additional request.
|
|
63
|
+
*
|
|
64
|
+
* **IMPORTANT**: The `id_token` can only be processed if the `openid` scope is requested during the authorization process.
|
|
65
|
+
*
|
|
66
|
+
* Additionally, the `profile` and `email` scopes are required to get the full user information.
|
|
67
|
+
*
|
|
68
|
+
* @see {@link https://docs.globus.org/api/auth/reference/#oidc_userinfo_endpoint}
|
|
63
69
|
*/
|
|
64
|
-
|
|
70
|
+
get user(): JwtUserInfo | null;
|
|
71
|
+
/**
|
|
72
|
+
* Start the silent refresh process for the instance.
|
|
73
|
+
* @todo Add interval support for the silent refresh.
|
|
74
|
+
*/
|
|
75
|
+
startSilentRefresh(): void;
|
|
65
76
|
/**
|
|
66
77
|
* Use the `refresh_token` attribute of a token to obtain a new access token.
|
|
67
78
|
* @param token The well-formed token with a `refresh_token` attribute.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthorizationManager.d.ts","sourceRoot":"","sources":["../../../../../src/lib/core/authorization/AuthorizationManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AuthorizationManager.d.ts","sourceRoot":"","sources":["../../../../../src/lib/core/authorization/AuthorizationManager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAahD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAGL,8BAA8B,EAC9B,oBAAoB,EACrB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EACV,WAAW,EACX,KAAK,EACL,aAAa,EACb,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,MAAM,iCAAiC,GAAG;IAC9C,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7B,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACpC,QAAQ,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAClC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;CAChC,CAAC;AAOF;;GAEG;AACH,qBAAa,oBAAoB;;IAG/B,aAAa,EAAE,iCAAiC,CAAC;IAIjD;;;OAGG;IACH,IAAI,aAAa,IAOQ,OAAO,CAL/B;IAED;;OAEG;IACH,IAAI,aAAa,CAAC,KAAK,EAAE,OAAO,EAG/B;IAED,MAAM,EAAE,WAAW,CAAC;IAEpB,MAAM;QACJ;;;;;;WAMG;;YAIC;;;eAGG;6BACc,OAAO;;;QAI5B;;;WAGG;;MAEH;gBAEU,aAAa,EAAE,iCAAiC;IA6B5D;;;;;;;;;OASG;IACH,IAAI,IAAI,uBAGP;IAED;;;OAGG;IACH,kBAAkB;IAsBlB;;;OAGG;IACG,YAAY,CAAC,KAAK,EAAE,gBAAgB;IAoB1C,kBAAkB;IAIlB,kBAAkB;IA0BlB;;;OAGG;IACH,KAAK;IAoCL;;OAEG;IACH,KAAK;IAUC,kBAAkB;IAYxB;;;;;;OAMG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI;IAC5E,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,KAAK,GAAG,MAAM,IAAI;IAyBnF;;;OAGG;IACH,oCAAoC,CAAC,QAAQ,EAAE,8BAA8B;IAe7E;;;OAGG;IACH,0BAA0B,CAAC,QAAQ,EAAE,oBAAoB;IAOzD;;;;OAIG;IACH,gBAAgB,UAAW,KAAK,GAAG,aAAa,UAM9C;IAEF;;;;OAIG;IACG,MAAM;CAoBb"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
var _AuthorizationManager_instances, _AuthorizationManager_transport, _AuthorizationManager_authenticated,
|
|
1
|
+
var _AuthorizationManager_instances, _AuthorizationManager_transport, _AuthorizationManager_authenticated, _AuthorizationManager_silentRefreshTokens, _AuthorizationManager_checkAuthorizationState, _AuthorizationManager_bootstrapFromStorageState, _AuthorizationManager_emitAuthenticatedState, _AuthorizationManager_withOfflineAccess, _AuthorizationManager_buildTransport, _AuthorizationManager_revokeToken;
|
|
2
2
|
import { __awaiter, __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
|
+
import { jwtDecode } from 'jwt-decode';
|
|
3
4
|
import { getAuthorizationEndpoint, getTokenEndpoint, isGlobusAuthTokenResponse, isRefreshToken, oauth2, } from '../../services/auth/index.js';
|
|
4
5
|
import { createStorage, getStorage } from '../storage/index.js';
|
|
5
6
|
import { log } from '../logger.js';
|
|
@@ -16,7 +17,7 @@ const DEFAULT_CONFIGURATION = {
|
|
|
16
17
|
*/
|
|
17
18
|
export class AuthorizationManager {
|
|
18
19
|
/**
|
|
19
|
-
* The `AuthorizationManager` is
|
|
20
|
+
* The `AuthorizationManager` is considered `authenticated` if it has a valid Globus Auth token.
|
|
20
21
|
* It does not necessarily mean that it has a valid token for a specific resource server.
|
|
21
22
|
*/
|
|
22
23
|
get authenticated() {
|
|
@@ -81,19 +82,33 @@ export class AuthorizationManager {
|
|
|
81
82
|
manager: this,
|
|
82
83
|
});
|
|
83
84
|
__classPrivateFieldGet(this, _AuthorizationManager_instances, "m", _AuthorizationManager_bootstrapFromStorageState).call(this);
|
|
84
|
-
this.
|
|
85
|
+
this.startSilentRefresh();
|
|
85
86
|
}
|
|
86
87
|
/**
|
|
87
|
-
*
|
|
88
|
-
*
|
|
88
|
+
* The user information decoded from the `id_token` (JWT) of the current Globus Auth token.
|
|
89
|
+
* This method can be used instead of `auth.oauth2.userinfo` to get the user information without an additional request.
|
|
90
|
+
*
|
|
91
|
+
* **IMPORTANT**: The `id_token` can only be processed if the `openid` scope is requested during the authorization process.
|
|
92
|
+
*
|
|
93
|
+
* Additionally, the `profile` and `email` scopes are required to get the full user information.
|
|
94
|
+
*
|
|
95
|
+
* @see {@link https://docs.globus.org/api/auth/reference/#oidc_userinfo_endpoint}
|
|
89
96
|
*/
|
|
90
|
-
|
|
91
|
-
|
|
97
|
+
get user() {
|
|
98
|
+
const token = this.getGlobusAuthToken();
|
|
99
|
+
return token && token.id_token ? jwtDecode(token.id_token) : null;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Start the silent refresh process for the instance.
|
|
103
|
+
* @todo Add interval support for the silent refresh.
|
|
104
|
+
*/
|
|
105
|
+
startSilentRefresh() {
|
|
106
|
+
log('debug', `AuthorizationManager.startSilentRefresh | useRefreshTokens=${this.configuration.useRefreshTokens}`);
|
|
92
107
|
/**
|
|
93
|
-
* Silent
|
|
108
|
+
* Silent refresh is only supported when using refresh tokens.
|
|
94
109
|
*/
|
|
95
110
|
if (this.configuration.useRefreshTokens) {
|
|
96
|
-
__classPrivateFieldGet(this, _AuthorizationManager_instances, "m",
|
|
111
|
+
__classPrivateFieldGet(this, _AuthorizationManager_instances, "m", _AuthorizationManager_silentRefreshTokens).call(this);
|
|
97
112
|
}
|
|
98
113
|
}
|
|
99
114
|
/**
|
|
@@ -211,15 +226,15 @@ export class AuthorizationManager {
|
|
|
211
226
|
revoke() {
|
|
212
227
|
return __awaiter(this, void 0, void 0, function* () {
|
|
213
228
|
log('debug', 'AuthorizationManager.revoke');
|
|
214
|
-
const revocation = Promise.all(this.tokens.getAll().map(
|
|
229
|
+
const revocation = Promise.all(this.tokens.getAll().map(__classPrivateFieldGet(this, _AuthorizationManager_instances, "m", _AuthorizationManager_revokeToken).bind(this)));
|
|
215
230
|
this.reset();
|
|
216
231
|
yield revocation;
|
|
217
232
|
yield this.events.revoke.dispatch();
|
|
218
233
|
});
|
|
219
234
|
}
|
|
220
235
|
}
|
|
221
|
-
_AuthorizationManager_transport = new WeakMap(), _AuthorizationManager_authenticated = new WeakMap(), _AuthorizationManager_instances = new WeakSet(),
|
|
222
|
-
log('debug', 'AuthorizationManager.#
|
|
236
|
+
_AuthorizationManager_transport = new WeakMap(), _AuthorizationManager_authenticated = new WeakMap(), _AuthorizationManager_instances = new WeakSet(), _AuthorizationManager_silentRefreshTokens = function _AuthorizationManager_silentRefreshTokens() {
|
|
237
|
+
log('debug', 'AuthorizationManager.#silentRefreshTokens');
|
|
223
238
|
this.tokens.getAll().forEach((token) => {
|
|
224
239
|
if (isRefreshToken(token)) {
|
|
225
240
|
this.refreshToken(token);
|