@smg-automotive/auth 6.2.0-lkappeler-auht-hardening.5 → 6.2.0-middleware-token-refresh.2
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/README.md +3 -0
- package/dist/cjs/apiRoutes/handlers/creators/token.d.ts +1 -1
- package/dist/cjs/apiRoutes/handlers/creators/token.js +2 -4
- package/dist/cjs/apiRoutes/handlers/creators/token.js.map +1 -1
- package/dist/cjs/contexts/Auth.js +19 -67
- package/dist/cjs/contexts/Auth.js.map +1 -1
- package/dist/cjs/getServerAuthProps/app.d.ts +1 -2
- package/dist/cjs/getServerAuthProps/app.js +5 -8
- package/dist/cjs/getServerAuthProps/app.js.map +1 -1
- package/dist/cjs/getServerAuthProps/getAuthProps.js +13 -11
- package/dist/cjs/getServerAuthProps/getAuthProps.js.map +1 -1
- package/dist/cjs/getServerAuthProps/pages.js +8 -12
- package/dist/cjs/getServerAuthProps/pages.js.map +1 -1
- package/dist/cjs/lib/request/getAccessToken.d.ts +8 -5
- package/dist/cjs/lib/request/getAccessToken.js +9 -86
- package/dist/cjs/lib/request/getAccessToken.js.map +1 -1
- package/dist/cjs/middleware.d.ts +7 -4
- package/dist/cjs/middleware.js +46 -11
- package/dist/cjs/middleware.js.map +1 -1
- package/dist/cjs/node_modules/tslib/tslib.es6.js +11 -0
- package/dist/cjs/node_modules/tslib/tslib.es6.js.map +1 -1
- package/dist/edge.d.ts +8 -4
- package/dist/esm/apiRoutes/handlers/creators/token.d.ts +1 -1
- package/dist/esm/apiRoutes/handlers/creators/token.js +2 -4
- package/dist/esm/apiRoutes/handlers/creators/token.js.map +1 -1
- package/dist/esm/contexts/Auth.js +20 -68
- package/dist/esm/contexts/Auth.js.map +1 -1
- package/dist/esm/getServerAuthProps/app.d.ts +1 -2
- package/dist/esm/getServerAuthProps/app.js +6 -9
- package/dist/esm/getServerAuthProps/app.js.map +1 -1
- package/dist/esm/getServerAuthProps/getAuthProps.js +12 -10
- package/dist/esm/getServerAuthProps/getAuthProps.js.map +1 -1
- package/dist/esm/getServerAuthProps/pages.js +9 -13
- package/dist/esm/getServerAuthProps/pages.js.map +1 -1
- package/dist/esm/lib/request/getAccessToken.d.ts +8 -5
- package/dist/esm/lib/request/getAccessToken.js +10 -87
- package/dist/esm/lib/request/getAccessToken.js.map +1 -1
- package/dist/esm/middleware.d.ts +7 -4
- package/dist/esm/middleware.js +46 -11
- package/dist/esm/middleware.js.map +1 -1
- package/dist/esm/node_modules/tslib/tslib.es6.js +11 -1
- package/dist/esm/node_modules/tslib/tslib.es6.js.map +1 -1
- package/dist/server.d.ts +1 -2
- package/package.json +1 -1
- package/dist/cjs/lib/request/inFlightAccessTokenCache.d.ts +0 -8
- package/dist/cjs/lib/request/inFlightAccessTokenCache.js +0 -6
- package/dist/cjs/lib/request/inFlightAccessTokenCache.js.map +0 -1
- package/dist/esm/lib/request/inFlightAccessTokenCache.d.ts +0 -8
- package/dist/esm/lib/request/inFlightAccessTokenCache.js +0 -4
- package/dist/esm/lib/request/inFlightAccessTokenCache.js.map +0 -1
package/README.md
CHANGED
|
@@ -196,11 +196,14 @@ export default function middleware(
|
|
|
196
196
|
|
|
197
197
|
return authMiddleware({
|
|
198
198
|
request,
|
|
199
|
+
event,
|
|
199
200
|
isProtectedRoute,
|
|
200
201
|
language,
|
|
201
202
|
isProxied,
|
|
202
203
|
protocol,
|
|
203
204
|
host,
|
|
205
|
+
// You can pass the error handler of your choice
|
|
206
|
+
// onError: Sentry.captureException,
|
|
204
207
|
});
|
|
205
208
|
}
|
|
206
209
|
```
|
|
@@ -8,5 +8,5 @@ type ErrorResponse = {
|
|
|
8
8
|
code: string;
|
|
9
9
|
};
|
|
10
10
|
type ResponseData = TokenResponse | ErrorResponse;
|
|
11
|
-
export declare const createTokenHandler: ({ host, protocol, isProxied }: HandlerCreatorParams) => (request: NextApiRequest, response: NextApiResponse<ResponseData>) => Promise<
|
|
11
|
+
export declare const createTokenHandler: ({ host, protocol, isProxied }: HandlerCreatorParams) => (request: NextApiRequest, response: NextApiResponse<ResponseData>) => Promise<NextApiResponse<ResponseData> | undefined>;
|
|
12
12
|
export {};
|
|
@@ -19,8 +19,7 @@ var createTokenHandler = function (_a) {
|
|
|
19
19
|
case 1:
|
|
20
20
|
session = _b.sent();
|
|
21
21
|
if (!session) {
|
|
22
|
-
response.status(204).end();
|
|
23
|
-
return [2 /*return*/];
|
|
22
|
+
return [2 /*return*/, response.status(204).end()];
|
|
24
23
|
}
|
|
25
24
|
_a = request.query, refreshParameter = _a.refresh, sellerIdParameter = _a.sellerId;
|
|
26
25
|
refresh = refreshParameter === 'true';
|
|
@@ -45,8 +44,7 @@ var createTokenHandler = function (_a) {
|
|
|
45
44
|
case 3:
|
|
46
45
|
accessToken = _b.sent();
|
|
47
46
|
if (!accessToken) {
|
|
48
|
-
response.status(204).end();
|
|
49
|
-
return [2 /*return*/];
|
|
47
|
+
return [2 /*return*/, response.status(204).end()];
|
|
50
48
|
}
|
|
51
49
|
response.status(200).json({
|
|
52
50
|
accessToken: accessToken,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.js","sources":["../../../../../../src/apiRoutes/handlers/creators/token.ts"],"sourcesContent":[null],"names":["__awaiter","getAuth0Instance","getAccessToken"],"mappings":";;;;;;AAkBA,IAAM,YAAY,GAAG,UAAC,KAAc,EAAA;AAClC,IAAA,QACE,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;AAE/E,CAAC;AAEM,IAAM,kBAAkB,GAC7B,UAAC,EAAmD,EAAA;AAAjD,IAAA,IAAA,IAAI,UAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,SAAS,GAAA,EAAA,CAAA,SAAA;IAC5B,OAAA,UAAO,OAAuB,EAAE,QAAuC,EAAA,EAAA,OAAAA,mBAAA,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,YAAA;;;;;AAC/D,oBAAA,aAAa,GAAGC,iCAAgB,CAAC,EAAE,IAAI,EAAA,IAAA,EAAE,QAAQ,EAAA,QAAA,EAAE,SAAS,EAAA,SAAA,EAAE,CAAC;oBACrD,OAAM,CAAA,CAAA,YAAA,aAAa,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;;AAA3D,oBAAA,OAAO,GAAG,EAAiD,CAAA,IAAA,EAAA;oBACjE,IAAI,CAAC,OAAO,EAAE;wBACZ,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE
|
|
1
|
+
{"version":3,"file":"token.js","sources":["../../../../../../src/apiRoutes/handlers/creators/token.ts"],"sourcesContent":[null],"names":["__awaiter","getAuth0Instance","getAccessToken"],"mappings":";;;;;;AAkBA,IAAM,YAAY,GAAG,UAAC,KAAc,EAAA;AAClC,IAAA,QACE,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;AAE/E,CAAC;AAEM,IAAM,kBAAkB,GAC7B,UAAC,EAAmD,EAAA;AAAjD,IAAA,IAAA,IAAI,UAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,SAAS,GAAA,EAAA,CAAA,SAAA;IAC5B,OAAA,UAAO,OAAuB,EAAE,QAAuC,EAAA,EAAA,OAAAA,mBAAA,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,YAAA;;;;;AAC/D,oBAAA,aAAa,GAAGC,iCAAgB,CAAC,EAAE,IAAI,EAAA,IAAA,EAAE,QAAQ,EAAA,QAAA,EAAE,SAAS,EAAA,SAAA,EAAE,CAAC;oBACrD,OAAM,CAAA,CAAA,YAAA,aAAa,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;;AAA3D,oBAAA,OAAO,GAAG,EAAiD,CAAA,IAAA,EAAA;oBACjE,IAAI,CAAC,OAAO,EAAE;wBACZ,OAAO,CAAA,CAAA,aAAA,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;;oBAIlC,EACE,GAAA,OAAO,MADwD,EAA/C,gBAAgB,aAAA,EAAY,iBAAiB,cAAA;AAE3D,oBAAA,OAAO,GAAG,gBAAgB,KAAK,MAAM;oBACrC,iBAAiB,GACrB,iBAAiB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB;AACnD,0BAAE;0BACA,EAAE;;;;AAGc,oBAAA,OAAA,CAAA,CAAA,YAAMC,6BAAc,CAAC;AACvC,4BAAA,aAAa,EAAA,aAAA;AACb,4BAAA,SAAS,EAAA,SAAA;AACT,4BAAA,OAAO,EAAE;AACP,gCAAA,OAAO,EAAA,OAAA;AACP,gCAAA,QAAQ,EAAA,QAAA;AACT,6BAAA;AACD,4BAAA,OAAO,EAAE;AACP,gCAAA,OAAO,EAAA,OAAA;AACP,gCAAA,QAAQ,EAAE,iBAAiB;AAC5B,6BAAA;AACF,yBAAA,CAAC,CAAA;;AAXI,oBAAA,WAAW,GAAG,EAWlB,CAAA,IAAA,EAAA;oBAEF,IAAI,CAAC,WAAW,EAAE;wBAChB,OAAO,CAAA,CAAA,aAAA,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;;AAGpC,oBAAA,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACxB,wBAAA,WAAW,EAAA,WAAA;wBACX,oBAAoB,EAAE,OAAO,CAAC,oBAAoB,IAAI,IAAI,CAAC,GAAG,EAAE;AACjE,qBAAA,CAAC;oBACF,QAAQ,CAAC,GAAG,EAAE;;;;AAER,oBAAA,SAAS,GAAG,YAAY,CAAC,OAAK,CAAC,GAAG,OAAK,CAAC,IAAI,GAAG,oBAAoB;AACzE,oBAAA,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;oBAC9C,QAAQ,CAAC,GAAG,EAAE;;;;;AAEjB,KAAA,CAAA,CAAA,EAAA;AA5CD;;;;"}
|
|
@@ -3,10 +3,8 @@
|
|
|
3
3
|
|
|
4
4
|
var tslib_es6 = require('../node_modules/tslib/tslib.es6.js');
|
|
5
5
|
var React = require('react');
|
|
6
|
-
var i18nPkg = require('@smg-automotive/i18n-pkg');
|
|
7
6
|
var brand = require('../types/brand.js');
|
|
8
7
|
var session = require('../lib/enrichUser/session.js');
|
|
9
|
-
var authLinks = require('../lib/authLinks.js');
|
|
10
8
|
var useInterval = require('../hooks/useInterval.js');
|
|
11
9
|
|
|
12
10
|
var AuthContext = React.createContext({
|
|
@@ -45,7 +43,6 @@ var AuthProvider = function (_a) {
|
|
|
45
43
|
};
|
|
46
44
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
47
45
|
}, []);
|
|
48
|
-
var language = i18nPkg.useI18n().language;
|
|
49
46
|
var _f = React.useState({
|
|
50
47
|
config: memoizedParams.config,
|
|
51
48
|
accessToken: memoizedParams.accessToken,
|
|
@@ -55,20 +52,8 @@ var AuthProvider = function (_a) {
|
|
|
55
52
|
}), contextState = _f[0], setContextState = _f[1];
|
|
56
53
|
// Guard for cases like error pages where we don't need to set up auth handling
|
|
57
54
|
var needsAuthHandling = !!memoizedParams.config;
|
|
58
|
-
var
|
|
59
|
-
|
|
60
|
-
if (memoizedParams.config.debugForceTokenRefresh) {
|
|
61
|
-
// eslint-disable-next-line no-console
|
|
62
|
-
console.info('[Auth-package] Redirecting to login due to error', formatResponseError(error));
|
|
63
|
-
}
|
|
64
|
-
window.location.href = authLinks.getLoginLink({
|
|
65
|
-
auth0Config: memoizedParams.config,
|
|
66
|
-
language: language,
|
|
67
|
-
returnTo: window.location.pathname,
|
|
68
|
-
});
|
|
69
|
-
}, [errorHandler, memoizedParams.config, language]);
|
|
70
|
-
var tokenUpdateHandler = React.useCallback(function () { return tslib_es6.__awaiter(void 0, void 0, void 0, function () {
|
|
71
|
-
var tokenExpiration, refreshThreshold, isRefreshThresholdPending, isDebugForceTokenRefresh, isVisible, shouldRefresh, body, response, error_1;
|
|
55
|
+
var tokenUpdateHandler = function () { return tslib_es6.__awaiter(void 0, void 0, void 0, function () {
|
|
56
|
+
var tokenExpiration, refreshThreshold, body, response, error_1;
|
|
72
57
|
return tslib_es6.__generator(this, function (_a) {
|
|
73
58
|
switch (_a.label) {
|
|
74
59
|
case 0:
|
|
@@ -76,25 +61,11 @@ var AuthProvider = function (_a) {
|
|
|
76
61
|
return [2 /*return*/];
|
|
77
62
|
tokenExpiration = contextState.accessTokenExpiresAt * 1000;
|
|
78
63
|
refreshThreshold = tokenExpiration - memoizedParams.config.refreshThresholdInMs;
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
isVisible = document.visibilityState === 'visible';
|
|
82
|
-
shouldRefresh = (!isRefreshThresholdPending || isDebugForceTokenRefresh) &&
|
|
83
|
-
isVisible &&
|
|
84
|
-
!contextState.isLoading;
|
|
85
|
-
if (!shouldRefresh) {
|
|
86
|
-
if (isDebugForceTokenRefresh) {
|
|
87
|
-
// eslint-disable-next-line no-console
|
|
88
|
-
console.info('[Auth-package] Skipping refresh', {
|
|
89
|
-
isVisible: isVisible,
|
|
90
|
-
isRefreshThresholdPending: isRefreshThresholdPending,
|
|
91
|
-
isDebugForceTokenRefresh: isDebugForceTokenRefresh,
|
|
92
|
-
isLoading: contextState.isLoading,
|
|
93
|
-
});
|
|
94
|
-
}
|
|
64
|
+
if (refreshThreshold > Date.now() &&
|
|
65
|
+
!memoizedParams.config.debugForceTokenRefresh) {
|
|
95
66
|
return [2 /*return*/];
|
|
96
67
|
}
|
|
97
|
-
if (
|
|
68
|
+
if (memoizedParams.config.debugForceTokenRefresh) {
|
|
98
69
|
// eslint-disable-next-line no-console
|
|
99
70
|
console.info('[Auth-package] Start forced token refresh', {
|
|
100
71
|
time: Date.now(),
|
|
@@ -118,10 +89,18 @@ var AuthProvider = function (_a) {
|
|
|
118
89
|
return [3 /*break*/, 5];
|
|
119
90
|
case 4:
|
|
120
91
|
error_1 = _a.sent();
|
|
121
|
-
|
|
92
|
+
if (memoizedParams.config.debugForceTokenRefresh) {
|
|
93
|
+
// eslint-disable-next-line no-console
|
|
94
|
+
console.info('[Auth-package] Failed forced token refresh', {
|
|
95
|
+
time: Date.now(),
|
|
96
|
+
error: error_1,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
errorHandler(error_1);
|
|
100
|
+
window.location.href = memoizedParams.config.loginEndpoint;
|
|
122
101
|
return [2 /*return*/];
|
|
123
102
|
case 5:
|
|
124
|
-
if (
|
|
103
|
+
if (memoizedParams.config.debugForceTokenRefresh) {
|
|
125
104
|
// eslint-disable-next-line no-console
|
|
126
105
|
console.info('[Auth-package] Successfully finished forced token refresh', {
|
|
127
106
|
time: Date.now(),
|
|
@@ -140,13 +119,7 @@ var AuthProvider = function (_a) {
|
|
|
140
119
|
return [2 /*return*/];
|
|
141
120
|
}
|
|
142
121
|
});
|
|
143
|
-
}); }
|
|
144
|
-
contextState.accessTokenExpiresAt,
|
|
145
|
-
contextState.isLoading,
|
|
146
|
-
handleAuthError,
|
|
147
|
-
memoizedParams.config,
|
|
148
|
-
needsAuthHandling,
|
|
149
|
-
]);
|
|
122
|
+
}); };
|
|
150
123
|
var selectTenant = React.useCallback(function (sellerId) { return tslib_es6.__awaiter(void 0, void 0, void 0, function () {
|
|
151
124
|
var response, _a, _b, _c, updatedAccessToken_1, updatedAccessTokenExpiresAt_1, userResponse, _d, _e, updatedUser, enrichedSessionUser_1, _f, error_2;
|
|
152
125
|
return tslib_es6.__generator(this, function (_g) {
|
|
@@ -211,40 +184,19 @@ var AuthProvider = function (_a) {
|
|
|
211
184
|
return [3 /*break*/, 14];
|
|
212
185
|
case 13:
|
|
213
186
|
error_2 = _g.sent();
|
|
214
|
-
|
|
187
|
+
errorHandler(error_2);
|
|
188
|
+
window.location.href = memoizedParams.config.loginEndpoint;
|
|
215
189
|
return [2 /*return*/];
|
|
216
190
|
case 14: return [2 /*return*/];
|
|
217
191
|
}
|
|
218
192
|
});
|
|
219
|
-
}); }, [memoizedParams.config,
|
|
193
|
+
}); }, [memoizedParams.config, errorHandler, needsAuthHandling]);
|
|
220
194
|
useInterval.useInterval({
|
|
221
195
|
callback: tokenUpdateHandler,
|
|
222
196
|
delay: typeof ((_b = memoizedParams.config) === null || _b === void 0 ? void 0 : _b.providerInterval) === 'number'
|
|
223
197
|
? (_c = memoizedParams.config) === null || _c === void 0 ? void 0 : _c.providerInterval
|
|
224
198
|
: null,
|
|
225
199
|
});
|
|
226
|
-
React.useEffect(function () {
|
|
227
|
-
var handleVisibilityChange = function () { return tslib_es6.__awaiter(void 0, void 0, void 0, function () {
|
|
228
|
-
return tslib_es6.__generator(this, function (_a) {
|
|
229
|
-
switch (_a.label) {
|
|
230
|
-
case 0:
|
|
231
|
-
if (document.visibilityState !== 'visible')
|
|
232
|
-
return [2 /*return*/];
|
|
233
|
-
// Calling an endpoint to give the browser time to load the current cookies into memory
|
|
234
|
-
return [4 /*yield*/, fetch(memoizedParams.config.userProfileEndpoint)];
|
|
235
|
-
case 1:
|
|
236
|
-
// Calling an endpoint to give the browser time to load the current cookies into memory
|
|
237
|
-
_a.sent();
|
|
238
|
-
tokenUpdateHandler();
|
|
239
|
-
return [2 /*return*/];
|
|
240
|
-
}
|
|
241
|
-
});
|
|
242
|
-
}); };
|
|
243
|
-
document.addEventListener('visibilitychange', handleVisibilityChange);
|
|
244
|
-
return function () {
|
|
245
|
-
document.removeEventListener('visibilitychange', handleVisibilityChange);
|
|
246
|
-
};
|
|
247
|
-
}, [tokenUpdateHandler, memoizedParams.config.userProfileEndpoint]);
|
|
248
200
|
var memoizedContext = React.useMemo(function () {
|
|
249
201
|
return {
|
|
250
202
|
user: contextState.user || null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Auth.js","sources":["../../../../src/contexts/Auth.tsx"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Auth.js","sources":["../../../../src/contexts/Auth.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;AAqCA;AACE;AACA;;AAEA;AACA;AACD;AAED;;AAEA;AAEa;AACX;;;;;;;;AASF;AAEO;;;;;;AAQL;;;AAII;AAIA;AACA;AACA;;;;;;;;AASF;AACA;AACD;;AAGD;AAEA;;;;;AACE;;AAEM;;AAIN;AAEE;;;AAKF;;AAEE;AACE;AACD;;;AAID;AAIF;;;;;;AAIQ;AAGC;;;AAEP;;;;;;AAIA;;AAEE;AACE;AACA;AACD;;;;;;AAQL;;AAEE;AAGI;;AAED;;;;;;;;AASD;;AAEJ;;;;;AAGF;;;;;AAEI;;;AAGE;AAIF;;;;AAGmB;;AAAX;AAIF;;AACc;AAAoB;AAApC;AAME;;AAHE;AAKN;AACE;;;;AAKI;AAGF;;AACc;AAAoB;AAApC;AAE+B;;AAA3B;AACsB;AACxB;AACE;AACA;AACA;AACD;;AAJD;;;AAKA;;;;AAEJ;;;;AAII;AACA;AACA;;AAEJ;;;;;;;;;;;AAWN;AACE;;AAGI;AACA;AACL;;;AAIG;;AAEA;;AAEA;;;AAIJ;AAKF;;;"}
|
|
@@ -7,8 +7,7 @@ type GetServerAuthPropsArgs = {
|
|
|
7
7
|
isProxied: boolean;
|
|
8
8
|
brand: Brand;
|
|
9
9
|
language?: Language;
|
|
10
|
-
url?: string;
|
|
11
10
|
onError?: (error: Error) => void;
|
|
12
11
|
};
|
|
13
|
-
export declare const getServerAuthProps: ({ protocol, host, isProxied, brand, language,
|
|
12
|
+
export declare const getServerAuthProps: ({ protocol, host, isProxied, brand, language, onError, }: GetServerAuthPropsArgs) => Promise<AuthProps>;
|
|
14
13
|
export {};
|
|
@@ -8,8 +8,8 @@ var auth0 = require('../config/auth0.js');
|
|
|
8
8
|
var getAuthProps = require('./getAuthProps.js');
|
|
9
9
|
|
|
10
10
|
var getServerAuthProps = function (_a) { return tslib_es6.__awaiter(void 0, [_a], void 0, function (_b) {
|
|
11
|
-
var auth0Instance, config, authProps, shouldRedirect, _c, error_1, authError,
|
|
12
|
-
var protocol = _b.protocol, host = _b.host, isProxied = _b.isProxied, brand = _b.brand, language = _b.language,
|
|
11
|
+
var auth0Instance, config, authProps, shouldRedirect, _c, error_1, authError, logoutUrl;
|
|
12
|
+
var protocol = _b.protocol, host = _b.host, isProxied = _b.isProxied, brand = _b.brand, language = _b.language, onError = _b.onError;
|
|
13
13
|
return tslib_es6.__generator(this, function (_d) {
|
|
14
14
|
switch (_d.label) {
|
|
15
15
|
case 0:
|
|
@@ -42,20 +42,17 @@ var getServerAuthProps = function (_a) { return tslib_es6.__awaiter(void 0, [_a]
|
|
|
42
42
|
error_1 = _d.sent();
|
|
43
43
|
authError = error_1;
|
|
44
44
|
onError === null || onError === void 0 ? void 0 : onError(authError);
|
|
45
|
-
shouldRedirect =
|
|
46
|
-
Object.hasOwn(authError, 'code') &&
|
|
47
|
-
authError.code === 'ERR_FAILED_REFRESH_GRANT';
|
|
45
|
+
shouldRedirect = true;
|
|
48
46
|
return [3 /*break*/, 4];
|
|
49
47
|
case 4:
|
|
50
48
|
if (shouldRedirect) {
|
|
51
|
-
|
|
52
|
-
returnTo: url || "/".concat(language),
|
|
49
|
+
logoutUrl = authLinks.getLogoutLink({
|
|
53
50
|
auth0Config: authProps.config,
|
|
54
51
|
language: language,
|
|
55
52
|
});
|
|
56
53
|
// redirect internally throws an error so it should be called outside of try/catch blocks
|
|
57
54
|
// https://nextjs.org/docs/app/building-your-application/routing/redirecting#redirect-function
|
|
58
|
-
navigation.redirect(
|
|
55
|
+
navigation.redirect(logoutUrl);
|
|
59
56
|
}
|
|
60
57
|
return [2 /*return*/, authProps];
|
|
61
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sources":["../../../../src/getServerAuthProps/app.ts"],"sourcesContent":[null],"names":["getAuth0Instance","getAuth0Config","getAuthProps","__assign","
|
|
1
|
+
{"version":3,"file":"app.js","sources":["../../../../src/getServerAuthProps/app.ts"],"sourcesContent":[null],"names":["getAuth0Instance","getAuth0Config","getAuthProps","__assign","getLogoutLink","redirect"],"mappings":";;;;;;;;;AAqBO,IAAM,kBAAkB,GAAG,2EAAO,EAOhB,EAAA;;AANvB,IAAA,IAAA,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,IAAI,GAAA,EAAA,CAAA,IAAA,EACJ,SAAS,GAAA,EAAA,CAAA,SAAA,EACT,KAAK,WAAA,EACL,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,OAAO,GAAA,EAAA,CAAA,OAAA;;;;gBAED,aAAa,GAAGA,iCAAgB,CAAC;AACrC,oBAAA,QAAQ,EAAA,QAAA;AACR,oBAAA,IAAI,EAAA,IAAA;AACJ,oBAAA,SAAS,EAAA,SAAA;AACV,iBAAA,CAAC;gBACI,MAAM,GAAGC,oBAAc,CAAC,EAAE,SAAS,EAAA,SAAA,EAAE,CAAC;AACxC,gBAAA,SAAS,GAAc;AACzB,oBAAA,MAAM,EAAA,MAAA;AACN,oBAAA,IAAI,EAAE,IAAI;AACV,oBAAA,WAAW,EAAE,IAAI;AACjB,oBAAA,oBAAoB,EAAE,IAAI;iBAC3B;gBACG,cAAc,GAAG,KAAK;;;;6CAInB,SAAS,CAAA,CAAA;AACR,gBAAA,OAAA,CAAA,CAAA,YAAMC,yBAAY,CAAC;AACrB,wBAAA,aAAa,EAAA,aAAA;AACb,wBAAA,KAAK,EAAA,KAAA;AACL,wBAAA,SAAS,EAAA,SAAA;AACV,qBAAA,CAAC,CAAA;;AANJ,gBAAA,SAAS,GAEJC,kBAAA,CAAA,KAAA,CAAA,MAAA,EAAA,EAAA,CAAA,MAAA,CAAA,EAAC,EAIF,CAAA,IAAA,EAAA,IACH;;;;gBAEK,SAAS,GAAG,OAAkB;AAEpC,gBAAA,OAAO,aAAP,OAAO,KAAA,MAAA,GAAA,MAAA,GAAP,OAAO,CAAG,SAAS,CAAC;gBACpB,cAAc,GAAG,IAAI;;;gBAGvB,IAAI,cAAc,EAAE;oBACZ,SAAS,GAAGC,uBAAa,CAAC;wBAC9B,WAAW,EAAE,SAAS,CAAC,MAAM;AAC7B,wBAAA,QAAQ,EAAA,QAAA;AACT,qBAAA,CAAC;;;oBAIFC,mBAAQ,CAAC,SAAS,CAAC;;AAGrB,gBAAA,OAAA,CAAA,CAAA,aAAO,SAAS,CAAC;;;;;;;"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var tslib_es6 = require('../node_modules/tslib/tslib.es6.js');
|
|
4
|
-
var getAccessToken = require('../lib/request/getAccessToken.js');
|
|
5
4
|
|
|
6
5
|
var getAuthProps = function (_a) { return tslib_es6.__awaiter(void 0, [_a], void 0, function (_b) {
|
|
7
|
-
var session, isLoggedIn, user, accessTokenExpiresAt, accessToken, enrichUser, enrichedUser, _c;
|
|
6
|
+
var session, isLoggedIn, user, accessTokenExpiresAt, getAccessToken, accessToken, enrichUser, enrichedUser, _c;
|
|
8
7
|
var auth0Instance = _b.auth0Instance, brand = _b.brand, context = _b.context, isProxied = _b.isProxied;
|
|
9
8
|
return tslib_es6.__generator(this, function (_d) {
|
|
10
9
|
switch (_d.label) {
|
|
@@ -21,25 +20,28 @@ var getAuthProps = function (_a) { return tslib_es6.__awaiter(void 0, [_a], void
|
|
|
21
20
|
}
|
|
22
21
|
user = session.user;
|
|
23
22
|
accessTokenExpiresAt = session.accessTokenExpiresAt;
|
|
24
|
-
return [4 /*yield*/,
|
|
23
|
+
return [4 /*yield*/, Promise.resolve().then(function () { return require('../lib/request/getAccessToken.js'); })];
|
|
24
|
+
case 2:
|
|
25
|
+
getAccessToken = (_d.sent()).getAccessToken;
|
|
26
|
+
return [4 /*yield*/, getAccessToken({
|
|
25
27
|
auth0Instance: auth0Instance,
|
|
26
28
|
context: context,
|
|
27
29
|
isProxied: isProxied,
|
|
28
30
|
})];
|
|
29
|
-
case
|
|
31
|
+
case 3:
|
|
30
32
|
accessToken = _d.sent();
|
|
31
33
|
return [4 /*yield*/, Promise.resolve().then(function () { return require('../lib/enrichUser/session.js'); })];
|
|
32
|
-
case
|
|
34
|
+
case 4:
|
|
33
35
|
enrichUser = (_d.sent()).enrichUser;
|
|
34
|
-
if (!accessToken) return [3 /*break*/,
|
|
36
|
+
if (!accessToken) return [3 /*break*/, 6];
|
|
35
37
|
return [4 /*yield*/, enrichUser({ user: user, accessToken: accessToken, brand: brand })];
|
|
36
|
-
case 4:
|
|
37
|
-
_c = _d.sent();
|
|
38
|
-
return [3 /*break*/, 6];
|
|
39
38
|
case 5:
|
|
40
|
-
_c =
|
|
41
|
-
|
|
39
|
+
_c = _d.sent();
|
|
40
|
+
return [3 /*break*/, 7];
|
|
42
41
|
case 6:
|
|
42
|
+
_c = null;
|
|
43
|
+
_d.label = 7;
|
|
44
|
+
case 7:
|
|
43
45
|
enrichedUser = _c;
|
|
44
46
|
return [2 /*return*/, {
|
|
45
47
|
user: enrichedUser,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getAuthProps.js","sources":["../../../../src/getServerAuthProps/getAuthProps.ts"],"sourcesContent":[null],"names":[
|
|
1
|
+
{"version":3,"file":"getAuthProps.js","sources":["../../../../src/getServerAuthProps/getAuthProps.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAQO,IAAM,YAAY,GAAG,2EAAO,EAalC,EAAA;;QAZC,aAAa,GAAA,EAAA,CAAA,aAAA,EACb,KAAK,GAAA,EAAA,CAAA,KAAA,EACL,OAAO,GAAA,EAAA,CAAA,OAAA,EACP,SAAS,GAAA,EAAA,CAAA,SAAA;;;oBAUO,OAAM,CAAA,CAAA,YAAA,aAAa,CAAC,UAAU,CAAxB,KAAA,CAAA,aAAa,GAC7B,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,EACvD,CAAA;;AAFK,gBAAA,OAAO,GAAG,EAEf,CAAA,IAAA,EAAA;gBAEK,UAAU,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI;gBAE9C,IAAI,CAAC,UAAU,EAAE;oBACf,OAAO,CAAA,CAAA,aAAA;AACL,4BAAA,IAAI,EAAE,IAAI;AACV,4BAAA,WAAW,EAAE,IAAI;AACjB,4BAAA,oBAAoB,EAAE,IAAI;yBAC3B,CAAC;;AAGE,gBAAA,IAAI,GAAG,OAAO,CAAC,IAAoB;AACnC,gBAAA,oBAAoB,GAAG,OAAO,CAAC,oBAAqB;AAE/B,gBAAA,OAAA,CAAA,CAAA,YAAM,oDAAO,kCAAgC,KAAC,CAAA;;AAAjE,gBAAA,cAAc,GAAK,CAAA,EAA8C,CAAA,IAAA,EAAA,EAAnD,cAAA;AAEF,gBAAA,OAAA,CAAA,CAAA,YAAM,cAAc,CAAC;AACvC,wBAAA,aAAa,EAAA,aAAA;AACb,wBAAA,OAAO,EAAA,OAAA;AACP,wBAAA,SAAS,EAAA,SAAA;AACV,qBAAA,CAAC,CAAA;;AAJI,gBAAA,WAAW,GAAG,EAIlB,CAAA,IAAA,EAAA;AAEqB,gBAAA,OAAA,CAAA,CAAA,YAAM,oDAAO,8BAA4B,KAAC,CAAA;;AAAzD,gBAAA,UAAU,GAAK,CAAA,EAA0C,CAAA,IAAA,EAAA,EAA/C,UAAA;AACG,gBAAA,IAAA,CAAA,WAAW,EAAX,OAAW,CAAA,CAAA,YAAA,CAAA,CAAA;AAC5B,gBAAA,OAAA,CAAA,CAAA,YAAM,UAAU,CAAC,EAAE,IAAI,EAAA,IAAA,EAAE,WAAW,EAAA,WAAA,EAAE,KAAK,EAAA,KAAA,EAAE,CAAC,CAAA;;AAA9C,gBAAA,EAAA,GAAA,SAA8C;;;AAC9C,gBAAA,EAAA,GAAA,IAAI;;;AAFF,gBAAA,YAAY,GAEV,EAAA;gBAER,OAAO,CAAA,CAAA,aAAA;AACL,wBAAA,IAAI,EAAE,YAAY;AAClB,wBAAA,WAAW,EAAA,WAAA;AACX,wBAAA,oBAAoB,EAAA,oBAAA;qBACrB,CAAC;;;;;;;"}
|
|
@@ -41,18 +41,14 @@ var getServerAuthProps = function (_a) { return tslib_es6.__awaiter(void 0, [_a]
|
|
|
41
41
|
error_1 = _e.sent();
|
|
42
42
|
authError = error_1;
|
|
43
43
|
onError === null || onError === void 0 ? void 0 : onError(authError);
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
Location: logoutUrl,
|
|
53
|
-
});
|
|
54
|
-
response.end();
|
|
55
|
-
}
|
|
44
|
+
logoutUrl = authLinks.getLogoutLink({
|
|
45
|
+
auth0Config: authProps.config,
|
|
46
|
+
language: language,
|
|
47
|
+
});
|
|
48
|
+
response.writeHead(307, {
|
|
49
|
+
Location: logoutUrl,
|
|
50
|
+
});
|
|
51
|
+
response.end();
|
|
56
52
|
return [3 /*break*/, 4];
|
|
57
53
|
case 4:
|
|
58
54
|
pagePropsWithAuthProps = tslib_es6.__assign(tslib_es6.__assign({}, pageProps), { authProps: authProps });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pages.js","sources":["../../../../src/getServerAuthProps/pages.ts"],"sourcesContent":[null],"names":["getAuth0Instance","getAuth0Config","getAuthProps","__assign","
|
|
1
|
+
{"version":3,"file":"pages.js","sources":["../../../../src/getServerAuthProps/pages.ts"],"sourcesContent":[null],"names":["getAuth0Instance","getAuth0Config","getAuthProps","__assign","getLogoutLink"],"mappings":";;;;;;;;AAgCO,IAAM,kBAAkB,GAAG,2EAEhC,EAWkC,EAAA;;AAVlC,IAAA,IAAA,OAAO,GAAA,EAAA,CAAA,OAAA,EACP,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,KAAK,GAAA,EAAA,CAAA,KAAA,EACL,QAAQ,cAAA,EACR,EAAA,GAAA,EAAA,CAAA,SAA2B,EAA3B,SAAS,GAAG,EAAA,KAAA,MAAA,GAAA,EAAe,GAAA,EAAA,EAC3B,OAAO,GAAA,EAAA,CAAA,OAAA,EACP,IAAI,GAAA,EAAA,CAAA,IAAA,EACJ,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,SAAS,GAAA,EAAA,CAAA,SAAA;;;;gBAIH,aAAa,GAAGA,iCAAgB,CAAC;AACrC,oBAAA,IAAI,EAAA,IAAA;AACJ,oBAAA,QAAQ,EAAA,QAAA;AACR,oBAAA,SAAS,EAAA,SAAA;AACV,iBAAA,CAAC;gBACI,MAAM,GAAGC,oBAAc,CAAC,EAAE,SAAS,EAAA,SAAA,EAAE,CAAC;AACxC,gBAAA,SAAS,GAAc;AACzB,oBAAA,MAAM,EAAA,MAAA;AACN,oBAAA,IAAI,EAAE,IAAI;AACV,oBAAA,WAAW,EAAE,IAAI;AACjB,oBAAA,oBAAoB,EAAE,IAAI;iBAC3B;;;;6CAIM,SAAS,CAAA,CAAA;AACR,gBAAA,OAAA,CAAA,CAAA,YAAMC,yBAAY,CAAC;AACrB,wBAAA,aAAa,EAAA,aAAA;AACb,wBAAA,KAAK,EAAA,KAAA;AACL,wBAAA,SAAS,EAAA,SAAA;AACT,wBAAA,OAAO,EAAE,EAAE,OAAO,SAAA,EAAE,QAAQ,UAAA,EAAE;AAC/B,qBAAA,CAAC,CAAA;;AAPJ,gBAAA,SAAS,GAEJC,kBAAA,CAAA,KAAA,CAAA,MAAA,EAAA,EAAA,CAAA,MAAA,CAAA,EAAC,EAKF,CAAA,IAAA,EAAA,IACH;;;;gBAEK,SAAS,GAAG,OAAkB;AAEpC,gBAAA,OAAO,aAAP,OAAO,KAAA,MAAA,GAAA,MAAA,GAAP,OAAO,CAAG,SAAS,CAAC;gBACd,SAAS,GAAGC,uBAAa,CAAC;oBAC9B,WAAW,EAAE,SAAS,CAAC,MAAM;AAC7B,oBAAA,QAAQ,EAAA,QAAA;AACT,iBAAA,CAAC;AAEF,gBAAA,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE;AACtB,oBAAA,QAAQ,EAAE,SAAS;AACpB,iBAAA,CAAC;gBACF,QAAQ,CAAC,GAAG,EAAE;;;AAGV,gBAAA,sBAAsB,6CACvB,SAAS,CAAA,EAAA,EACZ,SAAS,EAAA,SAAA,GACV;gBACD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,sBAAsB,CAAC;AACzD,gBAAA,OAAA,CAAA,CAAA,aAAO,QAAQ,CAAC;;;;;;;"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import type { NextApiRequest, NextApiResponse } from 'next/types';
|
|
2
|
+
import { NextRequest, NextResponse } from 'next/server';
|
|
2
3
|
import type { IncomingMessage, ServerResponse } from 'http';
|
|
3
4
|
import type { GetAccessToken, GetSession } from '@auth0/nextjs-auth0';
|
|
4
5
|
type AccessTokenOptions = {
|
|
5
6
|
refresh?: boolean;
|
|
6
7
|
sellerId?: string | number;
|
|
7
8
|
};
|
|
8
|
-
type Auth0Instance = {
|
|
9
|
-
getSession: GetSession;
|
|
10
|
-
getAccessToken: GetAccessToken;
|
|
11
|
-
};
|
|
12
9
|
type GetAccessTokenArgs = {
|
|
13
|
-
auth0Instance:
|
|
10
|
+
auth0Instance: {
|
|
11
|
+
getSession: GetSession;
|
|
12
|
+
getAccessToken: GetAccessToken;
|
|
13
|
+
};
|
|
14
14
|
isProxied: boolean;
|
|
15
15
|
context?: {
|
|
16
16
|
request: NextApiRequest;
|
|
@@ -18,6 +18,9 @@ type GetAccessTokenArgs = {
|
|
|
18
18
|
} | {
|
|
19
19
|
request: IncomingMessage;
|
|
20
20
|
response: ServerResponse;
|
|
21
|
+
} | {
|
|
22
|
+
request: NextRequest;
|
|
23
|
+
response: NextResponse;
|
|
21
24
|
};
|
|
22
25
|
options?: AccessTokenOptions;
|
|
23
26
|
};
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
var tslib_es6 = require('../../node_modules/tslib/tslib.es6.js');
|
|
4
4
|
var jose = require('jose');
|
|
5
5
|
var sessionCallbackHandler = require('./sessionCallbackHandler.js');
|
|
6
|
-
var inFlightAccessTokenCache = require('./inFlightAccessTokenCache.js');
|
|
7
6
|
|
|
8
7
|
var determineSellerIdWithFallbacks = function (_a) {
|
|
9
8
|
var sellerIdFromOptions = _a.sellerIdFromOptions, user = _a.user, accessToken = _a.accessToken;
|
|
@@ -20,91 +19,21 @@ var determineSellerIdWithFallbacks = function (_a) {
|
|
|
20
19
|
}
|
|
21
20
|
return null;
|
|
22
21
|
};
|
|
23
|
-
var cacheReleaseDelay = 2000; // 2 seconds
|
|
24
|
-
var safeCleanupAfterTTL = function (key) {
|
|
25
|
-
var tracked = inFlightAccessTokenCache.inFlightTokenRequests.get(key);
|
|
26
|
-
if (!tracked)
|
|
27
|
-
return;
|
|
28
|
-
if (tracked.count > 0) {
|
|
29
|
-
console.debug("[Auth-package] [".concat(key, "] cleanup deferred \u2014 count=").concat(tracked.count));
|
|
30
|
-
setTimeout(function () { return safeCleanupAfterTTL(key); }, 500);
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
var now = Date.now();
|
|
34
|
-
var delay = tracked.expiresAt - now;
|
|
35
|
-
if (delay > 0) {
|
|
36
|
-
console.debug("[Auth-package] [".concat(key, "] delaying final cleanup by ").concat(delay, "ms"));
|
|
37
|
-
setTimeout(function () { return safeCleanupAfterTTL(key); }, delay);
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
console.debug("[Auth-package] [".concat(key, "] cache expired scheduling delete"));
|
|
41
|
-
setTimeout(function () {
|
|
42
|
-
inFlightAccessTokenCache.inFlightTokenRequests.delete(key);
|
|
43
|
-
console.debug("[Auth-package] [".concat(key, "] cache expired, cleaning up after ").concat(cacheReleaseDelay, "ms"));
|
|
44
|
-
}, cacheReleaseDelay);
|
|
45
|
-
};
|
|
46
|
-
var accessTokenCacheTTL = 10000; // 10 seconds
|
|
47
|
-
var getAccessTokenWithLock = function (key, auth0Instance, accessTokenArgs) {
|
|
48
|
-
console.debug("[Auth-package] getAccessTokenWithLock called at ".concat(new Date().toISOString()));
|
|
49
|
-
var existing = inFlightAccessTokenCache.inFlightTokenRequests.get(key);
|
|
50
|
-
if (existing) {
|
|
51
|
-
existing.count++;
|
|
52
|
-
console.debug("[Auth-package] [".concat(key, "] found in cache, incrementing count to ").concat(existing.count));
|
|
53
|
-
return existing.promise.finally(function () {
|
|
54
|
-
existing.count--;
|
|
55
|
-
console.debug("[Auth-package] existing finally [".concat(key, "] consumer finished, decrementing count to ").concat(existing.count));
|
|
56
|
-
if (existing.count === 0) {
|
|
57
|
-
safeCleanupAfterTTL(key);
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
// First consumer creates promise and adds to cache
|
|
62
|
-
var resolve;
|
|
63
|
-
var reject;
|
|
64
|
-
var wrapperPromise = new Promise(function (res, rej) {
|
|
65
|
-
resolve = res;
|
|
66
|
-
reject = rej;
|
|
67
|
-
});
|
|
68
|
-
inFlightAccessTokenCache.inFlightTokenRequests.set(key, {
|
|
69
|
-
promise: wrapperPromise,
|
|
70
|
-
count: 1,
|
|
71
|
-
expiresAt: Date.now() + accessTokenCacheTTL, // TTL in ms
|
|
72
|
-
});
|
|
73
|
-
console.debug("[Auth-package] [".concat(key, "] not in cache, creating new promise"));
|
|
74
|
-
auth0Instance
|
|
75
|
-
.getAccessToken.apply(auth0Instance, accessTokenArgs).then(function (result) {
|
|
76
|
-
console.debug("[Auth-package] [".concat(key, "] initial consumer finished \u2014 count=1"));
|
|
77
|
-
resolve(result);
|
|
78
|
-
})
|
|
79
|
-
.catch(function (err) {
|
|
80
|
-
console.error("[Auth-package] [".concat(key, "] Auth0 error:"), err);
|
|
81
|
-
inFlightAccessTokenCache.inFlightTokenRequests.delete(key);
|
|
82
|
-
reject(err);
|
|
83
|
-
})
|
|
84
|
-
.finally(function () {
|
|
85
|
-
var tracked = inFlightAccessTokenCache.inFlightTokenRequests.get(key);
|
|
86
|
-
if (tracked) {
|
|
87
|
-
tracked.count--;
|
|
88
|
-
console.debug("[Auth-package] original finally [".concat(key, "] initial consumer finished \u2014 count=").concat(tracked.count));
|
|
89
|
-
if (tracked.count === 0) {
|
|
90
|
-
safeCleanupAfterTTL(key);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
});
|
|
94
|
-
return wrapperPromise;
|
|
95
|
-
};
|
|
96
22
|
var getAccessToken = function (_a) { return tslib_es6.__awaiter(void 0, [_a], void 0, function (_b) {
|
|
97
|
-
var session, sellerIdFromOptions, sellerId, refresh, accessTokenRequest, accessTokenArgs, accessToken;
|
|
23
|
+
var flatContext, session, sellerIdFromOptions, sellerId, refresh, accessTokenRequest, accessTokenArgs, accessToken;
|
|
98
24
|
var auth0Instance = _b.auth0Instance, context = _b.context, _c = _b.options, options = _c === void 0 ? {} : _c, isProxied = _b.isProxied;
|
|
99
25
|
return tslib_es6.__generator(this, function (_d) {
|
|
100
26
|
switch (_d.label) {
|
|
101
|
-
case 0:
|
|
27
|
+
case 0:
|
|
28
|
+
flatContext = context
|
|
29
|
+
? [context.request, context.response]
|
|
30
|
+
: [];
|
|
31
|
+
return [4 /*yield*/, auth0Instance.getSession.apply(auth0Instance, flatContext)];
|
|
102
32
|
case 1:
|
|
103
33
|
session = _d.sent();
|
|
104
34
|
if (!session || !session.user || !session.accessToken) {
|
|
105
35
|
return [2 /*return*/, null];
|
|
106
36
|
}
|
|
107
|
-
console.debug("[Auth-package] getAccessToken called for user ".concat(session === null || session === void 0 ? void 0 : session.user.userId, " at ").concat(new Date().toISOString()));
|
|
108
37
|
sellerIdFromOptions = (options === null || options === void 0 ? void 0 : options.sellerId) || null;
|
|
109
38
|
sellerId = determineSellerIdWithFallbacks({
|
|
110
39
|
sellerIdFromOptions: sellerIdFromOptions,
|
|
@@ -112,7 +41,7 @@ var getAccessToken = function (_a) { return tslib_es6.__awaiter(void 0, [_a], vo
|
|
|
112
41
|
accessToken: session.accessToken,
|
|
113
42
|
});
|
|
114
43
|
if (!sellerId) {
|
|
115
|
-
throw new Error("Missing seller id for user ".concat(session
|
|
44
|
+
throw new Error("Missing seller id for user ".concat(session.user.userId));
|
|
116
45
|
}
|
|
117
46
|
refresh = (options === null || options === void 0 ? void 0 : options.refresh) || false;
|
|
118
47
|
accessTokenRequest = {
|
|
@@ -133,14 +62,8 @@ var getAccessToken = function (_a) { return tslib_es6.__awaiter(void 0, [_a], vo
|
|
|
133
62
|
}); },
|
|
134
63
|
};
|
|
135
64
|
accessTokenArgs = context
|
|
136
|
-
? [
|
|
137
|
-
|
|
138
|
-
console.debug("[Auth-package] calling access token with args:", {
|
|
139
|
-
refreshToken: session.refreshToken,
|
|
140
|
-
refreshTokenExpiresAt: session.refreshTokenExpiresAt,
|
|
141
|
-
refresh: refresh,
|
|
142
|
-
});
|
|
143
|
-
return [4 /*yield*/, getAccessTokenWithLock("".concat(session === null || session === void 0 ? void 0 : session.user.userId, "-").concat(sellerId), auth0Instance, accessTokenArgs)];
|
|
65
|
+
? tslib_es6.__spreadArray(tslib_es6.__spreadArray([], flatContext, true), [accessTokenRequest], false) : [accessTokenRequest];
|
|
66
|
+
return [4 /*yield*/, auth0Instance.getAccessToken.apply(auth0Instance, accessTokenArgs)];
|
|
144
67
|
case 2:
|
|
145
68
|
accessToken = (_d.sent()).accessToken;
|
|
146
69
|
return [2 /*return*/, accessToken !== null && accessToken !== void 0 ? accessToken : null];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getAccessToken.js","sources":["../../../../../src/lib/request/getAccessToken.ts"],"sourcesContent":[null],"names":["decodeJwt","
|
|
1
|
+
{"version":3,"file":"getAccessToken.js","sources":["../../../../../src/lib/request/getAccessToken.ts"],"sourcesContent":[null],"names":["decodeJwt","__awaiter","sessionCallbackHandler","__spreadArray"],"mappings":"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"}
|
package/dist/cjs/middleware.d.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { NextFetchEvent, NextRequest } from 'next/server';
|
|
2
|
+
import { Language } from '@smg-automotive/i18n-pkg';
|
|
3
|
+
export declare const authMiddleware: ({ request, event, isProtectedRoute, language, host, protocol, isProxied, onError, }: {
|
|
3
4
|
request: NextRequest;
|
|
5
|
+
event: NextFetchEvent;
|
|
4
6
|
isProtectedRoute: (path: string) => boolean;
|
|
5
|
-
language:
|
|
7
|
+
language: Language;
|
|
6
8
|
host: string;
|
|
7
9
|
protocol: string;
|
|
8
10
|
isProxied: boolean;
|
|
9
|
-
|
|
11
|
+
onError?: (error: Error) => void;
|
|
12
|
+
}) => Promise<import("next/dist/server/web/types").NextMiddlewareResult>;
|