@goldstack/template-user-management 0.1.48 → 0.1.49
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/client/executeTokenRequest.d.ts +9 -0
- package/dist/src/client/executeTokenRequest.d.ts.map +1 -0
- package/dist/src/client/executeTokenRequest.js +36 -0
- package/dist/src/client/executeTokenRequest.js.map +1 -0
- package/dist/src/client/getAndPersistToken.d.ts +12 -0
- package/dist/src/client/getAndPersistToken.d.ts.map +1 -0
- package/dist/src/client/getAndPersistToken.js +43 -0
- package/dist/src/client/getAndPersistToken.js.map +1 -0
- package/dist/src/{codeChallenge.d.ts → client/getCodeVerifier.d.ts} +1 -1
- package/dist/src/client/getCodeVerifier.d.ts.map +1 -0
- package/dist/src/{codeChallenge.js → client/getCodeVerifier.js} +1 -1
- package/dist/src/client/getCodeVerifier.js.map +1 -0
- package/dist/src/client/getCookieSettings.d.ts +14 -0
- package/dist/src/client/getCookieSettings.d.ts.map +1 -0
- package/dist/src/client/getCookieSettings.js +28 -0
- package/dist/src/client/getCookieSettings.js.map +1 -0
- package/dist/src/{cognitoEndpoints.d.ts → client/getEndpoints.d.ts} +2 -2
- package/dist/src/client/getEndpoints.d.ts.map +1 -0
- package/dist/src/{cognitoEndpoints.js → client/getEndpoints.js} +6 -6
- package/dist/src/client/getEndpoints.js.map +1 -0
- package/dist/src/client/getLoggedInUser.d.ts +17 -0
- package/dist/src/client/getLoggedInUser.d.ts.map +1 -0
- package/dist/src/client/getLoggedInUser.js +38 -0
- package/dist/src/client/getLoggedInUser.js.map +1 -0
- package/dist/src/{cognitoClientAuth.d.ts → client/getToken.d.ts} +1 -8
- package/dist/src/client/getToken.d.ts.map +1 -0
- package/dist/src/client/getToken.js +41 -0
- package/dist/src/client/getToken.js.map +1 -0
- package/dist/src/client/handleRedirectCallback.d.ts +11 -0
- package/dist/src/client/handleRedirectCallback.d.ts.map +1 -0
- package/dist/src/client/handleRedirectCallback.js +42 -0
- package/dist/src/client/handleRedirectCallback.js.map +1 -0
- package/dist/src/client/operationWithRedirect.d.ts +12 -0
- package/dist/src/client/operationWithRedirect.d.ts.map +1 -0
- package/dist/src/client/operationWithRedirect.js +72 -0
- package/dist/src/client/operationWithRedirect.js.map +1 -0
- package/dist/src/client/performLogout.d.ts +10 -0
- package/dist/src/client/performLogout.d.ts.map +1 -0
- package/dist/src/client/performLogout.js +34 -0
- package/dist/src/client/performLogout.js.map +1 -0
- package/dist/src/client/state.d.ts +8 -0
- package/dist/src/client/state.d.ts.map +1 -0
- package/dist/src/client/state.js +17 -0
- package/dist/src/client/state.js.map +1 -0
- package/dist/src/templateUserManagement.d.ts +12 -56
- package/dist/src/templateUserManagement.d.ts.map +1 -1
- package/dist/src/templateUserManagement.js +30 -295
- package/dist/src/templateUserManagement.js.map +1 -1
- package/package.json +1 -1
- package/dist/src/codeChallenge.d.ts.map +0 -1
- package/dist/src/codeChallenge.js.map +0 -1
- package/dist/src/cognitoClientAuth.d.ts.map +0 -1
- package/dist/src/cognitoClientAuth.js +0 -73
- package/dist/src/cognitoClientAuth.js.map +0 -1
- package/dist/src/cognitoEndpoints.d.ts.map +0 -1
- package/dist/src/cognitoEndpoints.js.map +0 -1
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { GetTokenResults } from './getToken';
|
|
2
|
+
export declare function executeTokenRequest(args: {
|
|
3
|
+
tokenEndpoint: string;
|
|
4
|
+
clientId: string;
|
|
5
|
+
code?: string;
|
|
6
|
+
refreshToken?: string;
|
|
7
|
+
redirectUri: string;
|
|
8
|
+
}): Promise<GetTokenResults>;
|
|
9
|
+
//# sourceMappingURL=executeTokenRequest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executeTokenRequest.d.ts","sourceRoot":"","sources":["../../../src/client/executeTokenRequest.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAC9C,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,eAAe,CAAC,CAoC3B"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.executeTokenRequest = executeTokenRequest;
|
|
4
|
+
const getCodeVerifier_1 = require("./getCodeVerifier");
|
|
5
|
+
async function executeTokenRequest(args) {
|
|
6
|
+
const xhr = new XMLHttpRequest();
|
|
7
|
+
return new Promise(async (resolve, reject) => {
|
|
8
|
+
xhr.onload = function () {
|
|
9
|
+
const response = xhr.response;
|
|
10
|
+
if (xhr.status == 200) {
|
|
11
|
+
resolve({
|
|
12
|
+
accessToken: response.access_token,
|
|
13
|
+
refreshToken: args.refreshToken || response.refresh_token,
|
|
14
|
+
idToken: response.id_token,
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
reject(new Error(`Cannot obtain token ${response.error_description} (${response.error})`));
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
xhr.responseType = 'json';
|
|
22
|
+
xhr.open('POST', args.tokenEndpoint, true);
|
|
23
|
+
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
|
|
24
|
+
const codeVerifier = await (0, getCodeVerifier_1.getCodeVerifier)();
|
|
25
|
+
xhr.send(new URLSearchParams({
|
|
26
|
+
client_id: args.clientId,
|
|
27
|
+
code_verifier: args.code ? codeVerifier : '',
|
|
28
|
+
grant_type: args.code ? 'authorization_code' : 'refresh_token',
|
|
29
|
+
redirect_uri: args.redirectUri,
|
|
30
|
+
refresh_token: args.refreshToken || '',
|
|
31
|
+
code: args.code || '',
|
|
32
|
+
scope: 'openid email profile',
|
|
33
|
+
}));
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=executeTokenRequest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executeTokenRequest.js","sourceRoot":"","sources":["../../../src/client/executeTokenRequest.ts"],"names":[],"mappings":";;AAGA,kDA0CC;AA7CD,uDAAoD;AAG7C,KAAK,UAAU,mBAAmB,CAAC,IAMzC;IACC,MAAM,GAAG,GAAG,IAAI,cAAc,EAAE,CAAC;IAEjC,OAAO,IAAI,OAAO,CAAkB,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;QAC5D,GAAG,CAAC,MAAM,GAAG;YACX,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;YAC9B,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;gBACtB,OAAO,CAAC;oBACN,WAAW,EAAE,QAAQ,CAAC,YAAY;oBAClC,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC,aAAa;oBACzD,OAAO,EAAE,QAAQ,CAAC,QAAQ;iBAC3B,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,CACJ,IAAI,KAAK,CACP,uBAAuB,QAAQ,CAAC,iBAAiB,KAAK,QAAQ,CAAC,KAAK,GAAG,CACxE,CACF,CAAC;YACJ,CAAC;QACH,CAAC,CAAC;QACF,GAAG,CAAC,YAAY,GAAG,MAAM,CAAC;QAC1B,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAC3C,GAAG,CAAC,gBAAgB,CAAC,cAAc,EAAE,mCAAmC,CAAC,CAAC;QAC1E,MAAM,YAAY,GAAG,MAAM,IAAA,iCAAe,GAAE,CAAC;QAC7C,GAAG,CAAC,IAAI,CACN,IAAI,eAAe,CAAC;YAClB,SAAS,EAAE,IAAI,CAAC,QAAQ;YACxB,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;YAC5C,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,eAAe;YAC9D,YAAY,EAAE,IAAI,CAAC,WAAW;YAC9B,aAAa,EAAE,IAAI,CAAC,YAAY,IAAI,EAAE;YACtC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;YACrB,KAAK,EAAE,sBAAsB;SAC9B,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gets and persists authentication tokens
|
|
3
|
+
*/
|
|
4
|
+
export declare function getAndPersistToken(args: {
|
|
5
|
+
goldstackConfig: any;
|
|
6
|
+
packageSchema: any;
|
|
7
|
+
deploymentsOutput: any;
|
|
8
|
+
deploymentName?: string | undefined;
|
|
9
|
+
code?: string;
|
|
10
|
+
refreshToken?: string;
|
|
11
|
+
}): Promise<import("./getToken").GetTokenResults | undefined>;
|
|
12
|
+
//# sourceMappingURL=getAndPersistToken.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getAndPersistToken.d.ts","sourceRoot":"","sources":["../../../src/client/getAndPersistToken.ts"],"names":[],"mappings":"AA4BA;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE;IAC7C,eAAe,EAAE,GAAG,CAAC;IACrB,aAAa,EAAE,GAAG,CAAC;IACnB,iBAAiB,EAAE,GAAG,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,6DA6BA"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getAndPersistToken = getAndPersistToken;
|
|
4
|
+
const getToken_1 = require("./getToken");
|
|
5
|
+
const getCookieSettings_1 = require("./getCookieSettings");
|
|
6
|
+
const state_1 = require("./state");
|
|
7
|
+
function setCookie(name, value, minutes, domain, sameSite) {
|
|
8
|
+
let expires;
|
|
9
|
+
if (minutes) {
|
|
10
|
+
const date = new Date();
|
|
11
|
+
date.setTime(date.getTime() + minutes * 60 * 1000);
|
|
12
|
+
expires = '; expires=' + date.toUTCString();
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
expires = '';
|
|
16
|
+
}
|
|
17
|
+
document.cookie =
|
|
18
|
+
name +
|
|
19
|
+
'=' +
|
|
20
|
+
value +
|
|
21
|
+
expires +
|
|
22
|
+
`; path=/; domain=${domain}; SameSite=${sameSite}; Secure`;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Gets and persists authentication tokens
|
|
26
|
+
*/
|
|
27
|
+
async function getAndPersistToken(args) {
|
|
28
|
+
const token = await (0, getToken_1.getToken)({ ...args });
|
|
29
|
+
if (!token) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
window.sessionStorage.setItem('goldstack_access_token', token.accessToken);
|
|
33
|
+
window.sessionStorage.setItem('goldstack_id_token', token.idToken);
|
|
34
|
+
(0, state_1.setRefreshTokenStorage)(token.refreshToken);
|
|
35
|
+
const cookieSettings = (0, getCookieSettings_1.getCookieSettings)({ ...args });
|
|
36
|
+
// only store access and id token in cookie
|
|
37
|
+
const cookieDomain = cookieSettings.cookieDomain;
|
|
38
|
+
const cookieSameSite = cookieSettings.cookieSameSite;
|
|
39
|
+
setCookie('goldstack_access_token', token.accessToken, 60 * 24, cookieDomain, cookieSameSite);
|
|
40
|
+
setCookie('goldstack_id_token', token.idToken, 60 * 24, cookieDomain, cookieSameSite);
|
|
41
|
+
return token;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=getAndPersistToken.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getAndPersistToken.js","sourceRoot":"","sources":["../../../src/client/getAndPersistToken.ts"],"names":[],"mappings":";;AA+BA,gDAoCC;AAnED,yCAAsC;AACtC,2DAAwD;AAExD,mCAAiD;AAEjD,SAAS,SAAS,CAChB,IAAY,EACZ,KAAa,EACb,OAAe,EACf,MAAc,EACd,QAAgB;IAEhB,IAAI,OAAe,CAAC;IACpB,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QACnD,OAAO,GAAG,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAC9C,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,EAAE,CAAC;IACf,CAAC;IACD,QAAQ,CAAC,MAAM;QACb,IAAI;YACJ,GAAG;YACH,KAAK;YACL,OAAO;YACP,oBAAoB,MAAM,cAAc,QAAQ,UAAU,CAAC;AAC/D,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,kBAAkB,CAAC,IAOxC;IACC,MAAM,KAAK,GAAG,MAAM,IAAA,mBAAQ,EAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO;IACT,CAAC;IACD,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,wBAAwB,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IAC3E,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,oBAAoB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACnE,IAAA,8BAAsB,EAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAE3C,MAAM,cAAc,GAAG,IAAA,qCAAiB,EAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IACtD,2CAA2C;IAC3C,MAAM,YAAY,GAAG,cAAc,CAAC,YAAY,CAAC;IAEjD,MAAM,cAAc,GAAG,cAAc,CAAC,cAAc,CAAC;IACrD,SAAS,CACP,wBAAwB,EACxB,KAAK,CAAC,WAAW,EACjB,EAAE,GAAG,EAAE,EACP,YAAY,EACZ,cAAc,CACf,CAAC;IACF,SAAS,CACP,oBAAoB,EACpB,KAAK,CAAC,OAAO,EACb,EAAE,GAAG,EAAE,EACP,YAAY,EACZ,cAAc,CACf,CAAC;IACF,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getCodeVerifier.d.ts","sourceRoot":"","sources":["../../../src/client/getCodeVerifier.ts"],"names":[],"mappings":"AA+CA,wBAAsB,gBAAgB,oBAErC;AAED,wBAAsB,eAAe,oBAsBpC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getCodeVerifier.js","sourceRoot":"","sources":["../../../src/client/getCodeVerifier.ts"],"names":[],"mappings":";;AA+CA,4CAEC;AAED,0CAsBC;AAzED,sFAAsF;AACtF,4DAA2D;AAE3D,SAAS,oBAAoB,CAAC,MAAc;IAC1C,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,MAAM,QAAQ,GACZ,gEAAgE,CAAC;IAEnE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,YAAoB;IACvD,IAAI,MAAc,CAAC;IAEnB,kEAAkE;IAClE,oGAAoG;IACpG,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,MAAM,GAAG,MAAM,CAAC,YAAY,CAC1B,GAAG,IAAI,UAAU,CACf,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CACxB,SAAS,EACT,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CACvC,CACF,CACF,CAAC;QACF,OAAO,IAAI,CAAC,MAAM,CAAC;aAChB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;aACjB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aACnB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACzB,CAAC;SAAM,CAAC;QACN,8DAA8D;QAC9D,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,IAAA,+BAAe,EAAC,QAAQ,CAAC,CAAC,CAAC;QAC1D,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACjE,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;aAC/B,QAAQ,CAAC,QAAQ,CAAC;aAClB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;aACjB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aACnB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACzB,CAAC;AACH,CAAC;AAED,IAAI,YAAY,GAAuB,SAAS,CAAC;AAE1C,KAAK,UAAU,gBAAgB;IACpC,OAAO,MAAM,qBAAqB,CAAC,MAAM,eAAe,EAAE,CAAC,CAAC;AAC9D,CAAC;AAEM,KAAK,UAAU,eAAe;IACnC,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QAC3D,MAAM,gBAAgB,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CACpD,yBAAyB,CAC1B,CAAC;QACF,IAAI,gBAAgB,EAAE,CAAC;YACrB,YAAY,GAAG,gBAAgB,CAAC;YAChC,OAAO,YAAY,CAAC;QACtB,CAAC;IACH,CAAC;IAED,MAAM,eAAe,GAAG,oBAAoB,CAAC,EAAE,CAAC,CAAC;IACjD,YAAY,GAAG,eAAe,CAAC;IAE/B,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QAC3D,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,yBAAyB,EAAE,YAAY,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface GetCookieSettingsResult {
|
|
2
|
+
cookieDomain: string;
|
|
3
|
+
cookieSameSite: string;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Gets cookie settings for the current deployment
|
|
7
|
+
*/
|
|
8
|
+
export declare function getCookieSettings(args: {
|
|
9
|
+
goldstackConfig: any;
|
|
10
|
+
packageSchema: any;
|
|
11
|
+
deploymentsOutput: any;
|
|
12
|
+
deploymentName?: string | undefined;
|
|
13
|
+
}): GetCookieSettingsResult;
|
|
14
|
+
//# sourceMappingURL=getCookieSettings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getCookieSettings.d.ts","sourceRoot":"","sources":["../../../src/client/getCookieSettings.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,eAAe,EAAE,GAAG,CAAC;IACrB,aAAa,EAAE,GAAG,CAAC;IACnB,iBAAiB,EAAE,GAAG,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC,GAAG,uBAAuB,CAqB1B"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getCookieSettings = getCookieSettings;
|
|
4
|
+
const utils_package_config_embedded_1 = require("@goldstack/utils-package-config-embedded");
|
|
5
|
+
const userManagementConfig_1 = require("../userManagementConfig");
|
|
6
|
+
/**
|
|
7
|
+
* Gets cookie settings for the current deployment
|
|
8
|
+
*/
|
|
9
|
+
function getCookieSettings(args) {
|
|
10
|
+
const deploymentName = (0, userManagementConfig_1.getDeploymentName)(args.deploymentName);
|
|
11
|
+
if (deploymentName === 'local') {
|
|
12
|
+
return {
|
|
13
|
+
cookieDomain: 'localhost',
|
|
14
|
+
cookieSameSite: 'None',
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
const packageConfig = new utils_package_config_embedded_1.EmbeddedPackageConfig({
|
|
18
|
+
goldstackJson: args.goldstackConfig,
|
|
19
|
+
packageSchema: args.packageSchema,
|
|
20
|
+
});
|
|
21
|
+
// only store access and id token in cookie
|
|
22
|
+
const config = packageConfig.getDeployment(deploymentName).configuration;
|
|
23
|
+
return {
|
|
24
|
+
cookieDomain: config.cookieDomain,
|
|
25
|
+
cookieSameSite: config.cookieSameSite,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=getCookieSettings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getCookieSettings.js","sourceRoot":"","sources":["../../../src/client/getCookieSettings.ts"],"names":[],"mappings":";;AAaA,8CA0BC;AAvCD,4FAAiF;AACjF,kEAA4D;AAS5D;;GAEG;AACH,SAAgB,iBAAiB,CAAC,IAKjC;IACC,MAAM,cAAc,GAAG,IAAA,wCAAiB,EAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC9D,IAAI,cAAc,KAAK,OAAO,EAAE,CAAC;QAC/B,OAAO;YACL,YAAY,EAAE,WAAW;YACzB,cAAc,EAAE,MAAM;SACvB,CAAC;IACJ,CAAC;IACD,MAAM,aAAa,GAAG,IAAI,qDAAqB,CAG7C;QACA,aAAa,EAAE,IAAI,CAAC,eAAe;QACnC,aAAa,EAAE,IAAI,CAAC,aAAa;KAClC,CAAC,CAAC;IACH,2CAA2C;IAC3C,MAAM,MAAM,GAAG,aAAa,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC;IACzE,OAAO;QACL,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,cAAc,EAAE,MAAM,CAAC,cAAc;KACtC,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Endpoint } from '
|
|
1
|
+
import { Endpoint } from '../templateUserManagement';
|
|
2
2
|
export declare function getEndpoint(args: {
|
|
3
3
|
goldstackConfig: any;
|
|
4
4
|
endpoint: Endpoint;
|
|
@@ -6,4 +6,4 @@ export declare function getEndpoint(args: {
|
|
|
6
6
|
deploymentsOutput: any;
|
|
7
7
|
deploymentName?: string;
|
|
8
8
|
}): Promise<string>;
|
|
9
|
-
//# sourceMappingURL=
|
|
9
|
+
//# sourceMappingURL=getEndpoints.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getEndpoints.d.ts","sourceRoot":"","sources":["../../../src/client/getEndpoints.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,QAAQ,EAGT,MAAM,2BAA2B,CAAC;AAMnC,wBAAsB,WAAW,CAAC,IAAI,EAAE;IACtC,eAAe,EAAE,GAAG,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,aAAa,EAAE,GAAG,CAAC;IACnB,iBAAiB,EAAE,GAAG,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,OAAO,CAAC,MAAM,CAAC,CAoDlB"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getEndpoint = getEndpoint;
|
|
4
4
|
const utils_package_config_embedded_1 = require("@goldstack/utils-package-config-embedded");
|
|
5
|
-
const
|
|
6
|
-
const userManagementConfig_1 = require("
|
|
5
|
+
const getCodeVerifier_1 = require("./getCodeVerifier");
|
|
6
|
+
const userManagementConfig_1 = require("../userManagementConfig");
|
|
7
7
|
async function getEndpoint(args) {
|
|
8
8
|
const deploymentName = (0, userManagementConfig_1.getDeploymentName)(args.deploymentName);
|
|
9
9
|
if (deploymentName === 'local') {
|
|
@@ -23,13 +23,13 @@ async function getEndpoint(args) {
|
|
|
23
23
|
`&client_id=${deploymentOutput.terraform.user_pool_client_id.value}` +
|
|
24
24
|
`&redirect_uri=${deployment.configuration.callbackUrl}` +
|
|
25
25
|
'&code_challenge_method=S256' +
|
|
26
|
-
`&code_challenge=${await (0,
|
|
26
|
+
`&code_challenge=${await (0, getCodeVerifier_1.getCodeChallenge)()}`);
|
|
27
27
|
case 'signup':
|
|
28
28
|
return (`${baseUrl}/signup?response_type=code` +
|
|
29
29
|
`&client_id=${deploymentOutput.terraform.user_pool_client_id.value}` +
|
|
30
30
|
`&redirect_uri=${deployment.configuration.callbackUrl}` +
|
|
31
31
|
'&code_challenge_method=S256' +
|
|
32
|
-
`&code_challenge=${await (0,
|
|
32
|
+
`&code_challenge=${await (0, getCodeVerifier_1.getCodeChallenge)()}`);
|
|
33
33
|
case 'token':
|
|
34
34
|
return `${baseUrl}/oauth2/token`;
|
|
35
35
|
case 'logout':
|
|
@@ -37,7 +37,7 @@ async function getEndpoint(args) {
|
|
|
37
37
|
`&client_id=${deploymentOutput.terraform.user_pool_client_id.value}` +
|
|
38
38
|
`&redirect_uri=${deployment.configuration.callbackUrl}` +
|
|
39
39
|
'&code_challenge_method=S256' +
|
|
40
|
-
`&code_challenge=${await (0,
|
|
40
|
+
`&code_challenge=${await (0, getCodeVerifier_1.getCodeChallenge)()}`);
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
|
-
//# sourceMappingURL=
|
|
43
|
+
//# sourceMappingURL=getEndpoints.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getEndpoints.js","sourceRoot":"","sources":["../../../src/client/getEndpoints.ts"],"names":[],"mappings":";;AAYA,kCA0DC;AAtED,4FAAiF;AACjF,uDAAqD;AAMrD,kEAGiC;AAE1B,KAAK,UAAU,WAAW,CAAC,IAMjC;IACC,MAAM,cAAc,GAAG,IAAA,wCAAiB,EAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAE9D,IAAI,cAAc,KAAK,OAAO,EAAE,CAAC;QAC/B,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,qDAAqB,CAG7C;QACA,aAAa,EAAE,IAAI,CAAC,eAAe;QACnC,aAAa,EAAE,IAAI,CAAC,aAAa;KAClC,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,IAAA,2CAAoB,EAC3C,IAAI,CAAC,iBAAiB,EACtB,cAAc,CACf,CAAC;IAEF,0EAA0E;IAE1E,MAAM,UAAU,GAAG,aAAa,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,WAAW,UAAU,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC;IACpE,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;QACtB,KAAK,WAAW;YACd,OAAO,CACL,GAAG,OAAO,sCAAsC;gBAChD,cAAc,gBAAgB,CAAC,SAAS,CAAC,mBAAmB,CAAC,KAAK,EAAE;gBACpE,iBAAiB,UAAU,CAAC,aAAa,CAAC,WAAW,EAAE;gBACvD,6BAA6B;gBAC7B,mBAAmB,MAAM,IAAA,kCAAgB,GAAE,EAAE,CAC9C,CAAC;QACJ,KAAK,QAAQ;YACX,OAAO,CACL,GAAG,OAAO,4BAA4B;gBACtC,cAAc,gBAAgB,CAAC,SAAS,CAAC,mBAAmB,CAAC,KAAK,EAAE;gBACpE,iBAAiB,UAAU,CAAC,aAAa,CAAC,WAAW,EAAE;gBACvD,6BAA6B;gBAC7B,mBAAmB,MAAM,IAAA,kCAAgB,GAAE,EAAE,CAC9C,CAAC;QACJ,KAAK,OAAO;YACV,OAAO,GAAG,OAAO,eAAe,CAAC;QACnC,KAAK,QAAQ;YACX,OAAO,CACL,GAAG,OAAO,4BAA4B;gBACtC,cAAc,gBAAgB,CAAC,SAAS,CAAC,mBAAmB,CAAC,KAAK,EAAE;gBACpE,iBAAiB,UAAU,CAAC,aAAa,CAAC,WAAW,EAAE;gBACvD,6BAA6B;gBAC7B,mBAAmB,MAAM,IAAA,kCAAgB,GAAE,EAAE,CAC9C,CAAC;IACN,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Client-side authentication utilities
|
|
3
|
+
*/
|
|
4
|
+
export interface ClientAuthResult {
|
|
5
|
+
accessToken: string;
|
|
6
|
+
idToken: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* <p>Obtains the information for a user if a user is logged in.
|
|
10
|
+
* <p>Use <code>performClientAuth</code> to perform a login action.
|
|
11
|
+
*/
|
|
12
|
+
export declare function getLoggedInUser(): ClientAuthResult | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* <p>Returns true if a user is authenticated
|
|
15
|
+
*/
|
|
16
|
+
export declare function isAuthenticated(): boolean;
|
|
17
|
+
//# sourceMappingURL=getLoggedInUser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getLoggedInUser.d.ts","sourceRoot":"","sources":["../../../src/client/getLoggedInUser.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAID;;;GAGG;AACH,wBAAgB,eAAe,IAAI,gBAAgB,GAAG,SAAS,CAqB9D;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAEzC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Client-side authentication utilities
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getLoggedInUser = getLoggedInUser;
|
|
7
|
+
exports.isAuthenticated = isAuthenticated;
|
|
8
|
+
const state_1 = require("./state");
|
|
9
|
+
/**
|
|
10
|
+
* <p>Obtains the information for a user if a user is logged in.
|
|
11
|
+
* <p>Use <code>performClientAuth</code> to perform a login action.
|
|
12
|
+
*/
|
|
13
|
+
function getLoggedInUser() {
|
|
14
|
+
if (state_1.forceLogout) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
// if running on the server, such as for rendering a page for SSR, client auth
|
|
18
|
+
// cannot be performed
|
|
19
|
+
if (typeof window === 'undefined') {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const existingAccessToken = window.sessionStorage.getItem('goldstack_access_token');
|
|
23
|
+
const existingIdToken = window.sessionStorage.getItem('goldstack_id_token');
|
|
24
|
+
if (existingAccessToken && existingIdToken) {
|
|
25
|
+
return {
|
|
26
|
+
accessToken: existingAccessToken,
|
|
27
|
+
idToken: existingIdToken,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* <p>Returns true if a user is authenticated
|
|
34
|
+
*/
|
|
35
|
+
function isAuthenticated() {
|
|
36
|
+
return getLoggedInUser() !== undefined;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=getLoggedInUser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getLoggedInUser.js","sourceRoot":"","sources":["../../../src/client/getLoggedInUser.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAaH,0CAqBC;AAKD,0CAEC;AAlCD,mCAAsC;AAEtC;;;GAGG;AACH,SAAgB,eAAe;IAC7B,IAAI,mBAAW,EAAE,CAAC;QAChB,OAAO;IACT,CAAC;IAED,8EAA8E;IAC9E,sBAAsB;IACtB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO;IACT,CAAC;IACD,MAAM,mBAAmB,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CACvD,wBAAwB,CACzB,CAAC;IACF,MAAM,eAAe,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC5E,IAAI,mBAAmB,IAAI,eAAe,EAAE,CAAC;QAC3C,OAAO;YACL,WAAW,EAAE,mBAAmB;YAChC,OAAO,EAAE,eAAe;SACzB,CAAC;IACJ,CAAC;IACD,OAAO;AACT,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe;IAC7B,OAAO,eAAe,EAAE,KAAK,SAAS,CAAC;AACzC,CAAC"}
|
|
@@ -11,11 +11,4 @@ export declare function getToken(args: {
|
|
|
11
11
|
deploymentsOutput: any;
|
|
12
12
|
deploymentName?: string;
|
|
13
13
|
}): Promise<GetTokenResults | undefined>;
|
|
14
|
-
|
|
15
|
-
tokenEndpoint: string;
|
|
16
|
-
clientId: string;
|
|
17
|
-
code?: string;
|
|
18
|
-
refreshToken?: string;
|
|
19
|
-
redirectUri: string;
|
|
20
|
-
}): Promise<GetTokenResults>;
|
|
21
|
-
//# sourceMappingURL=cognitoClientAuth.d.ts.map
|
|
14
|
+
//# sourceMappingURL=getToken.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getToken.d.ts","sourceRoot":"","sources":["../../../src/client/getToken.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE;IACnC,eAAe,EAAE,GAAG,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,GAAG,CAAC;IACnB,iBAAiB,EAAE,GAAG,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CA2CvC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* esbuild-ignore server */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.getToken = getToken;
|
|
5
|
+
const utils_package_config_embedded_1 = require("@goldstack/utils-package-config-embedded");
|
|
6
|
+
const getEndpoints_1 = require("./getEndpoints");
|
|
7
|
+
const userManagementClientMock_1 = require("../userManagementClientMock");
|
|
8
|
+
const userManagementConfig_1 = require("../userManagementConfig");
|
|
9
|
+
const executeTokenRequest_1 = require("./executeTokenRequest");
|
|
10
|
+
async function getToken(args) {
|
|
11
|
+
const deploymentName = (0, userManagementConfig_1.getDeploymentName)(args.deploymentName);
|
|
12
|
+
if (deploymentName === 'local') {
|
|
13
|
+
if (args.code !== 'dummy-local-client-code') {
|
|
14
|
+
throw new Error(`Unexpected code for local client auth: '${args.code}'. Expected: dummy-local-client-code`);
|
|
15
|
+
}
|
|
16
|
+
const mockedUserAccessToken = (0, userManagementClientMock_1.getMockedUserAccessToken)();
|
|
17
|
+
const mockedIdToken = (0, userManagementClientMock_1.getMockedUserIdToken)();
|
|
18
|
+
if (!mockedUserAccessToken || !mockedIdToken) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
return {
|
|
22
|
+
accessToken: mockedUserAccessToken,
|
|
23
|
+
refreshToken: 'dummyRefreshToken',
|
|
24
|
+
idToken: mockedIdToken,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
const packageConfig = new utils_package_config_embedded_1.EmbeddedPackageConfig({
|
|
28
|
+
goldstackJson: args.goldstackConfig,
|
|
29
|
+
packageSchema: args.packageSchema,
|
|
30
|
+
});
|
|
31
|
+
const deploymentOutput = (0, userManagementConfig_1.getDeploymentsOutput)(args.deploymentsOutput, deploymentName);
|
|
32
|
+
const deployment = packageConfig.getDeployment(deploymentName);
|
|
33
|
+
return await (0, executeTokenRequest_1.executeTokenRequest)({
|
|
34
|
+
tokenEndpoint: await (0, getEndpoints_1.getEndpoint)({ ...args, endpoint: 'token' }),
|
|
35
|
+
clientId: deploymentOutput.terraform.user_pool_client_id.value,
|
|
36
|
+
code: args.code,
|
|
37
|
+
refreshToken: args.refreshToken,
|
|
38
|
+
redirectUri: deployment.configuration.callbackUrl,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=getToken.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getToken.js","sourceRoot":"","sources":["../../../src/client/getToken.ts"],"names":[],"mappings":";AAAA,2BAA2B;;AAwB3B,4BAkDC;AAxED,4FAAiF;AACjF,iDAA6C;AAK7C,0EAGqC;AACrC,kEAGiC;AACjC,+DAA4D;AAQrD,KAAK,UAAU,QAAQ,CAAC,IAO9B;IACC,MAAM,cAAc,GAAG,IAAA,wCAAiB,EAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAE9D,IAAI,cAAc,KAAK,OAAO,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,IAAI,KAAK,yBAAyB,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CACb,2CAA2C,IAAI,CAAC,IAAI,sCAAsC,CAC3F,CAAC;QACJ,CAAC;QACD,MAAM,qBAAqB,GAAG,IAAA,mDAAwB,GAAE,CAAC;QACzD,MAAM,aAAa,GAAG,IAAA,+CAAoB,GAAE,CAAC;QAC7C,IAAI,CAAC,qBAAqB,IAAI,CAAC,aAAa,EAAE,CAAC;YAC7C,OAAO;QACT,CAAC;QACD,OAAO;YACL,WAAW,EAAE,qBAAqB;YAClC,YAAY,EAAE,mBAAmB;YACjC,OAAO,EAAE,aAAa;SACvB,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,qDAAqB,CAG7C;QACA,aAAa,EAAE,IAAI,CAAC,eAAe;QACnC,aAAa,EAAE,IAAI,CAAC,aAAa;KAClC,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,IAAA,2CAAoB,EAC3C,IAAI,CAAC,iBAAiB,EACtB,cAAc,CACf,CAAC;IAEF,MAAM,UAAU,GAAG,aAAa,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;IAE/D,OAAO,MAAM,IAAA,yCAAmB,EAAC;QAC/B,aAAa,EAAE,MAAM,IAAA,0BAAW,EAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;QAChE,QAAQ,EAAE,gBAAgB,CAAC,SAAS,CAAC,mBAAmB,CAAC,KAAK;QAC9D,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,WAAW,EAAE,UAAU,CAAC,aAAa,CAAC,WAAW;KAClD,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ClientAuthResult } from './getLoggedInUser';
|
|
2
|
+
/**
|
|
3
|
+
* Handles the redirect callback from the authentication provider
|
|
4
|
+
*/
|
|
5
|
+
export declare function handleRedirectCallback(args: {
|
|
6
|
+
goldstackConfig: any;
|
|
7
|
+
packageSchema: any;
|
|
8
|
+
deploymentsOutput: any;
|
|
9
|
+
deploymentName?: string;
|
|
10
|
+
}): Promise<ClientAuthResult | undefined>;
|
|
11
|
+
//# sourceMappingURL=handleRedirectCallback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handleRedirectCallback.d.ts","sourceRoot":"","sources":["../../../src/client/handleRedirectCallback.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG1D;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE;IACjD,eAAe,EAAE,GAAG,CAAC;IACrB,aAAa,EAAE,GAAG,CAAC;IACnB,iBAAiB,EAAE,GAAG,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAuCxC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handleRedirectCallback = handleRedirectCallback;
|
|
4
|
+
const utils_package_config_embedded_1 = require("@goldstack/utils-package-config-embedded");
|
|
5
|
+
const userManagementConfig_1 = require("../userManagementConfig");
|
|
6
|
+
const getAndPersistToken_1 = require("./getAndPersistToken");
|
|
7
|
+
/**
|
|
8
|
+
* Handles the redirect callback from the authentication provider
|
|
9
|
+
*/
|
|
10
|
+
async function handleRedirectCallback(args) {
|
|
11
|
+
// if running on the server, such as for rendering a page for SSR, client auth
|
|
12
|
+
// cannot be performed
|
|
13
|
+
if (typeof window === 'undefined') {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
const params = new URLSearchParams(window.location.search);
|
|
17
|
+
const code = params.get('code');
|
|
18
|
+
if (!code) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const deploymentName = (0, userManagementConfig_1.getDeploymentName)(args.deploymentName);
|
|
22
|
+
const token = await (0, getAndPersistToken_1.getAndPersistToken)({ ...args, code });
|
|
23
|
+
const packageConfig = new utils_package_config_embedded_1.EmbeddedPackageConfig({
|
|
24
|
+
goldstackJson: args.goldstackConfig,
|
|
25
|
+
packageSchema: args.packageSchema,
|
|
26
|
+
});
|
|
27
|
+
if (deploymentName === 'local') {
|
|
28
|
+
window.location.href = window.location.href.replace('?code=dummy-local-client-code', '');
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
const deployment = packageConfig.getDeployment(deploymentName);
|
|
32
|
+
window.location.href = deployment.configuration.callbackUrl;
|
|
33
|
+
}
|
|
34
|
+
if (!token) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
return {
|
|
38
|
+
accessToken: token.accessToken,
|
|
39
|
+
idToken: token.idToken,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=handleRedirectCallback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handleRedirectCallback.js","sourceRoot":"","sources":["../../../src/client/handleRedirectCallback.ts"],"names":[],"mappings":";;AAUA,wDA4CC;AAtDD,4FAAiF;AACjF,kEAA4D;AAI5D,6DAA0D;AAE1D;;GAEG;AACI,KAAK,UAAU,sBAAsB,CAAC,IAK5C;IACC,8EAA8E;IAC9E,sBAAsB;IACtB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO;IACT,CAAC;IACD,MAAM,cAAc,GAAG,IAAA,wCAAiB,EAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAE9D,MAAM,KAAK,GAAG,MAAM,IAAA,uCAAkB,EAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,MAAM,aAAa,GAAG,IAAI,qDAAqB,CAG7C;QACA,aAAa,EAAE,IAAI,CAAC,eAAe;QACnC,aAAa,EAAE,IAAI,CAAC,aAAa;KAClC,CAAC,CAAC;IAEH,IAAI,cAAc,KAAK,OAAO,EAAE,CAAC;QAC/B,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CACjD,+BAA+B,EAC/B,EAAE,CACH,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,UAAU,GAAG,aAAa,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;QAC/D,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC;IAC9D,CAAC;IACD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO;IACT,CAAC;IACD,OAAO;QACL,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ClientAuthResult } from './getLoggedInUser';
|
|
2
|
+
/**
|
|
3
|
+
* Performs a redirect operation for authentication
|
|
4
|
+
*/
|
|
5
|
+
export declare function operationWithRedirect(args: {
|
|
6
|
+
goldstackConfig: any;
|
|
7
|
+
packageSchema: any;
|
|
8
|
+
deploymentsOutput: any;
|
|
9
|
+
deploymentName?: string;
|
|
10
|
+
operation: 'authorize' | 'signup';
|
|
11
|
+
}): Promise<ClientAuthResult | undefined>;
|
|
12
|
+
//# sourceMappingURL=operationWithRedirect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operationWithRedirect.d.ts","sourceRoot":"","sources":["../../../src/client/operationWithRedirect.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAS1D;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IAChD,eAAe,EAAE,GAAG,CAAC;IACrB,aAAa,EAAE,GAAG,CAAC;IACnB,iBAAiB,EAAE,GAAG,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,WAAW,GAAG,QAAQ,CAAC;CACnC,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAiExC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.operationWithRedirect = operationWithRedirect;
|
|
4
|
+
const userManagementConfig_1 = require("../userManagementConfig");
|
|
5
|
+
const getEndpoints_1 = require("./getEndpoints");
|
|
6
|
+
const handleRedirectCallback_1 = require("./handleRedirectCallback");
|
|
7
|
+
const userManagementClientMock_1 = require("../userManagementClientMock");
|
|
8
|
+
const getAndPersistToken_1 = require("./getAndPersistToken");
|
|
9
|
+
const state_1 = require("./state");
|
|
10
|
+
/**
|
|
11
|
+
* Performs a redirect operation for authentication
|
|
12
|
+
*/
|
|
13
|
+
async function operationWithRedirect(args) {
|
|
14
|
+
if (state_1.forceLogout) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const deploymentName = (0, userManagementConfig_1.getDeploymentName)(args.deploymentName);
|
|
18
|
+
// if running on the server, such as for rendering a page for SSR, client auth
|
|
19
|
+
// cannot be performed
|
|
20
|
+
if (typeof window === 'undefined') {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const params = new URLSearchParams(window.location.search);
|
|
24
|
+
const code = params.get('code');
|
|
25
|
+
// do not redirect in Jest tests
|
|
26
|
+
if (typeof process !== 'undefined' && typeof jest !== 'undefined') {
|
|
27
|
+
const token = await (0, getAndPersistToken_1.getAndPersistToken)({
|
|
28
|
+
...args,
|
|
29
|
+
code: 'dummy-local-client-code',
|
|
30
|
+
});
|
|
31
|
+
if (!token) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
accessToken: token.accessToken,
|
|
36
|
+
idToken: token.idToken,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
if (code) {
|
|
40
|
+
return await (0, handleRedirectCallback_1.handleRedirectCallback)(args);
|
|
41
|
+
}
|
|
42
|
+
if (deploymentName === 'local') {
|
|
43
|
+
if ((0, userManagementClientMock_1.getMockedUserAccessToken)() === undefined) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
window.location.href = '?code=dummy-local-client-code';
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
const refreshToken = state_1.refreshTokenStorage;
|
|
50
|
+
// if there is a refresh token, try to get a new token with that first before doing a redirect
|
|
51
|
+
if (refreshToken) {
|
|
52
|
+
try {
|
|
53
|
+
const token = await (0, getAndPersistToken_1.getAndPersistToken)({ ...args, refreshToken });
|
|
54
|
+
if (!token) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
accessToken: token.accessToken,
|
|
59
|
+
idToken: token.idToken,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
catch (e) {
|
|
63
|
+
// if there is an error, we better discard our refresh token, it could be expired
|
|
64
|
+
(0, state_1.setRefreshTokenStorage)(undefined);
|
|
65
|
+
// then we proceed with the redirect to login
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
const endpoint = await (0, getEndpoints_1.getEndpoint)({ ...args, endpoint: args.operation });
|
|
69
|
+
window.location.href = endpoint;
|
|
70
|
+
return undefined;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=operationWithRedirect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operationWithRedirect.js","sourceRoot":"","sources":["../../../src/client/operationWithRedirect.ts"],"names":[],"mappings":";;AAgBA,sDAuEC;AAvFD,kEAA4D;AAC5D,iDAA6C;AAC7C,qEAAkE;AAClE,0EAAuE;AAEvE,6DAA0D;AAE1D,mCAIiB;AAEjB;;GAEG;AACI,KAAK,UAAU,qBAAqB,CAAC,IAM3C;IACC,IAAI,mBAAW,EAAE,CAAC;QAChB,OAAO;IACT,CAAC;IACD,MAAM,cAAc,GAAG,IAAA,wCAAiB,EAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAE9D,8EAA8E;IAC9E,sBAAsB;IACtB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEhC,gCAAgC;IAChC,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE,CAAC;QAClE,MAAM,KAAK,GAAG,MAAM,IAAA,uCAAkB,EAAC;YACrC,GAAG,IAAI;YACP,IAAI,EAAE,yBAAyB;SAChC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QACD,OAAO;YACL,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,MAAM,IAAA,+CAAsB,EAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,cAAc,KAAK,OAAO,EAAE,CAAC;QAC/B,IAAI,IAAA,mDAAwB,GAAE,KAAK,SAAS,EAAE,CAAC;YAC7C,OAAO;QACT,CAAC;QACD,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,+BAA+B,CAAC;QACvD,OAAO;IACT,CAAC;IAED,MAAM,YAAY,GAAG,2BAAmB,CAAC;IACzC,8FAA8F;IAC9F,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAA,uCAAkB,EAAC,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;YAClE,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO;YACT,CAAC;YACD,OAAO;gBACL,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,iFAAiF;YACjF,IAAA,8BAAsB,EAAC,SAAS,CAAC,CAAC;YAClC,6CAA6C;QAC/C,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,IAAA,0BAAW,EAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAE1E,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC;IAChC,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Will clear all cached variables and redirect user to the sign in page
|
|
3
|
+
*/
|
|
4
|
+
export declare function performLogout(args: {
|
|
5
|
+
goldstackConfig: any;
|
|
6
|
+
packageSchema: any;
|
|
7
|
+
deploymentsOutput: any;
|
|
8
|
+
deploymentName?: string;
|
|
9
|
+
}): Promise<void>;
|
|
10
|
+
//# sourceMappingURL=performLogout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"performLogout.d.ts","sourceRoot":"","sources":["../../../src/client/performLogout.ts"],"names":[],"mappings":"AASA;;GAEG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE;IACxC,eAAe,EAAE,GAAG,CAAC;IACrB,aAAa,EAAE,GAAG,CAAC;IACnB,iBAAiB,EAAE,GAAG,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,iBAuBA"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.performLogout = performLogout;
|
|
4
|
+
const userManagementConfig_1 = require("../userManagementConfig");
|
|
5
|
+
const getEndpoints_1 = require("./getEndpoints");
|
|
6
|
+
const state_1 = require("./state");
|
|
7
|
+
function eraseCookie(name) {
|
|
8
|
+
document.cookie = name + '=; Max-Age=0; SameSite=Strict';
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Will clear all cached variables and redirect user to the sign in page
|
|
12
|
+
*/
|
|
13
|
+
async function performLogout(args) {
|
|
14
|
+
if (typeof window === 'undefined') {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const wasLoggedIn = window.sessionStorage.getItem('goldstack_access_token');
|
|
18
|
+
(0, state_1.setRefreshTokenStorage)(undefined);
|
|
19
|
+
eraseCookie('goldstack_access_token');
|
|
20
|
+
eraseCookie('goldstack_id_token');
|
|
21
|
+
window.sessionStorage.removeItem('goldstack_access_token');
|
|
22
|
+
window.sessionStorage.removeItem('goldstack_id_token');
|
|
23
|
+
(0, state_1.setForceLogout)(true);
|
|
24
|
+
const deploymentName = (0, userManagementConfig_1.getDeploymentName)(args.deploymentName);
|
|
25
|
+
if (deploymentName === 'local') {
|
|
26
|
+
if (wasLoggedIn) {
|
|
27
|
+
window.location.reload();
|
|
28
|
+
}
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const endpoint = await (0, getEndpoints_1.getEndpoint)({ ...args, endpoint: 'logout' });
|
|
32
|
+
window.location.href = endpoint;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=performLogout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"performLogout.js","sourceRoot":"","sources":["../../../src/client/performLogout.ts"],"names":[],"mappings":";;AAYA,sCA4BC;AAxCD,kEAA4D;AAC5D,iDAA6C;AAE7C,mCAAiE;AAEjE,SAAS,WAAW,CAAC,IAAY;IAC/B,QAAQ,CAAC,MAAM,GAAG,IAAI,GAAG,+BAA+B,CAAC;AAC3D,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,aAAa,CAAC,IAKnC;IACC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO;IACT,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAE5E,IAAA,8BAAsB,EAAC,SAAS,CAAC,CAAC;IAClC,WAAW,CAAC,wBAAwB,CAAC,CAAC;IACtC,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAClC,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC;IAC3D,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;IACvD,IAAA,sBAAc,EAAC,IAAI,CAAC,CAAC;IACrB,MAAM,cAAc,GAAG,IAAA,wCAAiB,EAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC9D,IAAI,cAAc,KAAK,OAAO,EAAE,CAAC;QAC/B,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC3B,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,IAAA,0BAAW,EAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;IACpE,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared state variables used across authentication modules
|
|
3
|
+
*/
|
|
4
|
+
export declare let forceLogout: boolean;
|
|
5
|
+
export declare let refreshTokenStorage: string | undefined;
|
|
6
|
+
export declare function setForceLogout(value: boolean): void;
|
|
7
|
+
export declare function setRefreshTokenStorage(token: string | undefined): void;
|
|
8
|
+
//# sourceMappingURL=state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/client/state.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,IAAI,WAAW,SAAQ,CAAC;AAC/B,eAAO,IAAI,mBAAmB,EAAE,MAAM,GAAG,SAAqB,CAAC;AAE/D,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,QAE5C;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,QAE/D"}
|