@smg-automotive/auth 9.1.1 → 9.1.3
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/{Auth-CJU-jY1w.d.ts → Auth-lfX7CuuS.d.ts} +1 -1
- package/dist/cjs/config/auth0.js +3 -0
- package/dist/cjs/config/auth0.js.map +1 -1
- package/dist/cjs/fixtures/authConfig.js +1 -0
- package/dist/cjs/fixtures/authConfig.js.map +1 -1
- package/dist/cjs/server/helpers/authRedirects.js +40 -0
- package/dist/cjs/server/helpers/authRedirects.js.map +1 -0
- package/dist/cjs/server/helpers/sellerCookies.js +33 -0
- package/dist/cjs/server/helpers/sellerCookies.js.map +1 -0
- package/dist/cjs/server/hooks/onCallbackFactory.js +34 -71
- package/dist/cjs/server/hooks/onCallbackFactory.js.map +1 -1
- package/dist/cjs/server/middleware/index.js +14 -1
- package/dist/cjs/server/middleware/index.js.map +1 -1
- package/dist/cjs/server/middleware/postLoginRefresh.js +95 -0
- package/dist/cjs/server/middleware/postLoginRefresh.js.map +1 -0
- package/dist/esm/config/auth0.js +3 -0
- package/dist/esm/config/auth0.js.map +1 -1
- package/dist/esm/fixtures/authConfig.js +1 -0
- package/dist/esm/fixtures/authConfig.js.map +1 -1
- package/dist/esm/server/helpers/authRedirects.js +35 -0
- package/dist/esm/server/helpers/authRedirects.js.map +1 -0
- package/dist/esm/server/helpers/sellerCookies.js +31 -0
- package/dist/esm/server/helpers/sellerCookies.js.map +1 -0
- package/dist/esm/server/hooks/onCallbackFactory.js +32 -69
- package/dist/esm/server/hooks/onCallbackFactory.js.map +1 -1
- package/dist/esm/server/middleware/index.js +14 -1
- package/dist/esm/server/middleware/index.js.map +1 -1
- package/dist/esm/server/middleware/postLoginRefresh.js +93 -0
- package/dist/esm/server/middleware/postLoginRefresh.js.map +1 -0
- package/dist/fixtures.d.ts +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/server.d.ts +2 -2
- package/dist/{sessionUser-qBgR12pF.d.ts → sessionUser-sPuqul_E.d.ts} +1 -0
- package/package.json +6 -6
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FC, PropsWithChildren } from 'react';
|
|
2
|
-
import { A as Auth0Config, E as EnrichedSessionUser } from './sessionUser-
|
|
2
|
+
import { A as Auth0Config, E as EnrichedSessionUser } from './sessionUser-sPuqul_E.js';
|
|
3
3
|
|
|
4
4
|
type AuthProviderProps = {
|
|
5
5
|
auth0Config: Auth0Config;
|
package/dist/cjs/config/auth0.js
CHANGED
|
@@ -32,6 +32,8 @@ const auth0Config = {
|
|
|
32
32
|
tokenEndpoint: '/api/auth/access-token',
|
|
33
33
|
// Endpoint to fetch and refresh token
|
|
34
34
|
callbackEndpoint: '/api/auth/callback',
|
|
35
|
+
// Endpoint to refresh once after signup callback when Auth0 token claims are not synced yet
|
|
36
|
+
postLoginRefreshEndpoint: '/api/auth/post-login-refresh',
|
|
35
37
|
// Endpoint to fetch user profile
|
|
36
38
|
userProfileEndpoint: '/api/auth/profile',
|
|
37
39
|
// Endpoint to switch selected tenant (cookie-only, no re-login)
|
|
@@ -98,6 +100,7 @@ const getAuth0Config = () => {
|
|
|
98
100
|
tokenEndpoint: `${runtimeConfig.proxyPathSegment}${runtimeConfig.tokenEndpoint}`,
|
|
99
101
|
userProfileEndpoint: `${runtimeConfig.proxyPathSegment}${runtimeConfig.userProfileEndpoint}`,
|
|
100
102
|
callbackEndpoint: `${runtimeConfig.proxyPathSegment}${runtimeConfig.callbackEndpoint}`,
|
|
103
|
+
postLoginRefreshEndpoint: `${runtimeConfig.proxyPathSegment}${runtimeConfig.postLoginRefreshEndpoint}`,
|
|
101
104
|
switchTenantEndpoint: `${runtimeConfig.proxyPathSegment}${runtimeConfig.switchTenantEndpoint}`,
|
|
102
105
|
};
|
|
103
106
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth0.js","sources":["../../../../src/config/auth0.ts"],"sourcesContent":[null],"names":["ensureString","ensureSlash"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auth0.js","sources":["../../../../src/config/auth0.ts"],"sourcesContent":[null],"names":["ensureString","ensureSlash"],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ const authConfig = (args = {}) => ({
|
|
|
6
6
|
logoutEndpoint: '/api/auth/logout',
|
|
7
7
|
tokenEndpoint: '/api/auth/token',
|
|
8
8
|
callbackEndpoint: '/api/auth/callback',
|
|
9
|
+
postLoginRefreshEndpoint: '/api/auth/post-login-refresh',
|
|
9
10
|
userProfileEndpoint: '/api/auth/me',
|
|
10
11
|
switchTenantEndpoint: '/api/auth/switch-tenant',
|
|
11
12
|
sessionDuration,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authConfig.js","sources":["../../../../src/fixtures/authConfig.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAEA,MAAM,eAAe,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAEnC,MAAM,UAAU,GAAG,CAAC,OAA6B,EAAE,MAAmB;AAC3E,IAAA,aAAa,EAAE,iBAAiB;AAChC,IAAA,cAAc,EAAE,kBAAkB;AAClC,IAAA,aAAa,EAAE,iBAAiB;AAChC,IAAA,gBAAgB,EAAE,oBAAoB;AACtC,IAAA,mBAAmB,EAAE,cAAc;AACnC,IAAA,oBAAoB,EAAE,yBAAyB;IAC/C,eAAe;AACf,IAAA,sBAAsB,EAAE;AACtB,QAAA,IAAI,EAAE,kBAAkB;AACxB,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,IAAI;AACZ,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,IAAI,EAAE,GAAG;AACV,KAAA;AACD,IAAA,0BAA0B,EAAE;AAC1B,QAAA,IAAI,EAAE,sBAAsB;AAC5B,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE;AACnB,QAAA,MAAM,EAAE,IAAI;AACZ,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,IAAI,EAAE,GAAG;AACV,KAAA;AACD,IAAA,gBAAgB,EAAE,gBAAgB;AAClC,IAAA,qBAAqB,EAAE,cAAc;AACrC,IAAA,sBAAsB,EAAE,cAAc;AACtC,IAAA,sBAAsB,EAAE,KAAK;AAC7B,IAAA,cAAc,EAAE;AACd,QAAA,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AACpC,KAAA;AACD,IAAA,MAAM,EAAE,mDAAmD;AAC3D,IAAA,mBAAmB,EAAE,cAAc;AACnC,IAAA,eAAe,EAAE,EAAE;AACnB,IAAA,iBAAiB,EAAE,SAAS;AAC5B,IAAA,QAAQ,EAAE,iDAAiD;AAC3D,IAAA,GAAG,IAAI;AACR,CAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"authConfig.js","sources":["../../../../src/fixtures/authConfig.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAEA,MAAM,eAAe,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAEnC,MAAM,UAAU,GAAG,CAAC,OAA6B,EAAE,MAAmB;AAC3E,IAAA,aAAa,EAAE,iBAAiB;AAChC,IAAA,cAAc,EAAE,kBAAkB;AAClC,IAAA,aAAa,EAAE,iBAAiB;AAChC,IAAA,gBAAgB,EAAE,oBAAoB;AACtC,IAAA,wBAAwB,EAAE,8BAA8B;AACxD,IAAA,mBAAmB,EAAE,cAAc;AACnC,IAAA,oBAAoB,EAAE,yBAAyB;IAC/C,eAAe;AACf,IAAA,sBAAsB,EAAE;AACtB,QAAA,IAAI,EAAE,kBAAkB;AACxB,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,IAAI;AACZ,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,IAAI,EAAE,GAAG;AACV,KAAA;AACD,IAAA,0BAA0B,EAAE;AAC1B,QAAA,IAAI,EAAE,sBAAsB;AAC5B,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE;AACnB,QAAA,MAAM,EAAE,IAAI;AACZ,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,IAAI,EAAE,GAAG;AACV,KAAA;AACD,IAAA,gBAAgB,EAAE,gBAAgB;AAClC,IAAA,qBAAqB,EAAE,cAAc;AACrC,IAAA,sBAAsB,EAAE,cAAc;AACtC,IAAA,sBAAsB,EAAE,KAAK;AAC7B,IAAA,cAAc,EAAE;AACd,QAAA,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AACpC,KAAA;AACD,IAAA,MAAM,EAAE,mDAAmD;AAC3D,IAAA,mBAAmB,EAAE,cAAc;AACnC,IAAA,eAAe,EAAE,EAAE;AACnB,IAAA,iBAAiB,EAAE,SAAS;AAC5B,IAAA,QAAQ,EAAE,iDAAiD;AAC3D,IAAA,GAAG,IAAI;AACR,CAAA;;;;"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var server = require('next/server');
|
|
4
|
+
|
|
5
|
+
const incompleteTokenErrorCode = 'ERR_INCOMPLETE_TOKEN';
|
|
6
|
+
const getLocaleFromReturnTo = ({ returnTo, auth0Config, appBaseUrl, }) => {
|
|
7
|
+
if (!returnTo) {
|
|
8
|
+
return auth0Config.languageConfig.default;
|
|
9
|
+
}
|
|
10
|
+
try {
|
|
11
|
+
const url = new URL(returnTo, appBaseUrl);
|
|
12
|
+
const locale = url.searchParams.get('locale') || url.pathname.split('/')[1];
|
|
13
|
+
if (auth0Config.languageConfig.supported.includes(locale)) {
|
|
14
|
+
return locale;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
// Ignore invalid returnTo values and fall back to the configured default locale.
|
|
19
|
+
}
|
|
20
|
+
return auth0Config.languageConfig.default;
|
|
21
|
+
};
|
|
22
|
+
const createGlobalAuthErrorRedirect = ({ auth0Config, appBaseUrl, returnTo, code, }) => {
|
|
23
|
+
const locale = getLocaleFromReturnTo({ returnTo, auth0Config, appBaseUrl });
|
|
24
|
+
const errorUrl = new URL(`/${locale}${auth0Config.globalAuthErrorPath}`, appBaseUrl);
|
|
25
|
+
if (code) {
|
|
26
|
+
errorUrl.searchParams.set('code', code);
|
|
27
|
+
}
|
|
28
|
+
return server.NextResponse.redirect(errorUrl);
|
|
29
|
+
};
|
|
30
|
+
const createIncompleteTokenLogoutRedirect = ({ auth0Config, appBaseUrl, }) => {
|
|
31
|
+
// eslint-disable-next-line no-console
|
|
32
|
+
console.info(`[Auth-package] logging out user CAUSE: ${incompleteTokenErrorCode}`);
|
|
33
|
+
return server.NextResponse.redirect(new URL(auth0Config.logoutEndpoint, appBaseUrl));
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
exports.createGlobalAuthErrorRedirect = createGlobalAuthErrorRedirect;
|
|
37
|
+
exports.createIncompleteTokenLogoutRedirect = createIncompleteTokenLogoutRedirect;
|
|
38
|
+
exports.getLocaleFromReturnTo = getLocaleFromReturnTo;
|
|
39
|
+
exports.incompleteTokenErrorCode = incompleteTokenErrorCode;
|
|
40
|
+
//# sourceMappingURL=authRedirects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authRedirects.js","sources":["../../../../../src/server/helpers/authRedirects.ts"],"sourcesContent":[null],"names":["NextResponse"],"mappings":";;;;AAMO,MAAM,wBAAwB,GAAG;AAEjC,MAAM,qBAAqB,GAAG,CAAC,EACpC,QAAQ,EACR,WAAW,EACX,UAAU,GAKX,KAAc;IACb,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,OAAO,WAAW,CAAC,cAAc,CAAC,OAAO;IAC3C;AAEA,IAAA,IAAI;QACF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC;QACzC,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAE3E,IAAI,WAAW,CAAC,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAkB,CAAC,EAAE;AACrE,YAAA,OAAO,MAAkB;QAC3B;IACF;AAAE,IAAA,MAAM;;IAER;AAEA,IAAA,OAAO,WAAW,CAAC,cAAc,CAAC,OAAO;AAC3C;AAEO,MAAM,6BAA6B,GAAG,CAAC,EAC5C,WAAW,EACX,UAAU,EACV,QAAQ,EACR,IAAI,GAML,KAAkB;AACjB,IAAA,MAAM,MAAM,GAAG,qBAAqB,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AAC3E,IAAA,MAAM,QAAQ,GAAG,IAAI,GAAG,CACtB,CAAA,CAAA,EAAI,MAAM,CAAA,EAAG,WAAW,CAAC,mBAAmB,CAAA,CAAE,EAC9C,UAAU,CACX;IAED,IAAI,IAAI,EAAE;QACR,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;IACzC;AAEA,IAAA,OAAOA,mBAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACxC;AAEO,MAAM,mCAAmC,GAAG,CAAC,EAClD,WAAW,EACX,UAAU,GAIX,KAAkB;;AAEjB,IAAA,OAAO,CAAC,IAAI,CACV,0CAA0C,wBAAwB,CAAA,CAAE,CACrE;AAED,IAAA,OAAOA,mBAAY,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;AAC/E;;;;;;;"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var getSelectedSellerId = require('../../lib/getSelectedSellerId.js');
|
|
4
|
+
|
|
5
|
+
const setSellerIdCookiesOnResponse = ({ decodedToken, response, auth0Config, selectedFromCookie, }) => {
|
|
6
|
+
const sellerIdsFromToken = decodedToken.sellerIds
|
|
7
|
+
.map((sellerId) => Number(sellerId))
|
|
8
|
+
.filter((sellerId) => Number.isFinite(sellerId));
|
|
9
|
+
const impersonatedSellerIdFromToken = decodedToken.isImpersonated
|
|
10
|
+
? sellerIdsFromToken[0]
|
|
11
|
+
: null;
|
|
12
|
+
const parsedSelectedSellerId = selectedFromCookie
|
|
13
|
+
? Number(selectedFromCookie)
|
|
14
|
+
: undefined;
|
|
15
|
+
const selectedSellerId = getSelectedSellerId.getSelectedSellerId({
|
|
16
|
+
selectedFromCookie: parsedSelectedSellerId,
|
|
17
|
+
impersonatedFromCookie: impersonatedSellerIdFromToken ?? undefined,
|
|
18
|
+
sellerIdsFromToken: sellerIdsFromToken,
|
|
19
|
+
});
|
|
20
|
+
response.cookies.set(auth0Config.selectedSellerIdCookie.name, String(selectedSellerId), auth0Config.selectedSellerIdCookie);
|
|
21
|
+
if (impersonatedSellerIdFromToken) {
|
|
22
|
+
response.cookies.set(auth0Config.impersonatedSellerIdCookie.name, String(impersonatedSellerIdFromToken), auth0Config.impersonatedSellerIdCookie);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
response.cookies.set(auth0Config.impersonatedSellerIdCookie.name, '', {
|
|
26
|
+
...auth0Config.impersonatedSellerIdCookie,
|
|
27
|
+
maxAge: 0,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
exports.setSellerIdCookiesOnResponse = setSellerIdCookiesOnResponse;
|
|
33
|
+
//# sourceMappingURL=sellerCookies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sellerCookies.js","sources":["../../../../../src/server/helpers/sellerCookies.ts"],"sourcesContent":[null],"names":["getSelectedSellerId"],"mappings":";;;;AAMO,MAAM,4BAA4B,GAAG,CAAC,EAC3C,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,kBAAkB,GAMnB,KAAU;AACT,IAAA,MAAM,kBAAkB,GAAG,YAAY,CAAC;SACrC,GAAG,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC;AAClC,SAAA,MAAM,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAElD,IAAA,MAAM,6BAA6B,GAAG,YAAY,CAAC;AACjD,UAAE,kBAAkB,CAAC,CAAC;UACpB,IAAI;IAER,MAAM,sBAAsB,GAAG;AAC7B,UAAE,MAAM,CAAC,kBAAkB;UACzB,SAAS;IAEb,MAAM,gBAAgB,GAAGA,uCAAmB,CAAC;AAC3C,QAAA,kBAAkB,EAAE,sBAAsB;QAC1C,sBAAsB,EAAE,6BAA6B,IAAI,SAAS;AAClE,QAAA,kBAAkB,EAAE,kBAA2C;AAChE,KAAA,CAAC;IAEF,QAAQ,CAAC,OAAO,CAAC,GAAG,CAClB,WAAW,CAAC,sBAAsB,CAAC,IAAI,EACvC,MAAM,CAAC,gBAAgB,CAAC,EACxB,WAAW,CAAC,sBAAsB,CACnC;IAED,IAAI,6BAA6B,EAAE;QACjC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAClB,WAAW,CAAC,0BAA0B,CAAC,IAAI,EAC3C,MAAM,CAAC,6BAA6B,CAAC,EACrC,WAAW,CAAC,0BAA0B,CACvC;IACH;SAAO;AACL,QAAA,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,0BAA0B,CAAC,IAAI,EAAE,EAAE,EAAE;YACpE,GAAG,WAAW,CAAC,0BAA0B;AACzC,YAAA,MAAM,EAAE,CAAC;AACV,SAAA,CAAC;IACJ;AACF;;;;"}
|
|
@@ -3,35 +3,28 @@
|
|
|
3
3
|
var server = require('next/server');
|
|
4
4
|
var headers = require('next/headers');
|
|
5
5
|
var jose = require('jose');
|
|
6
|
-
var
|
|
7
|
-
var
|
|
6
|
+
var sellerCookies = require('../helpers/sellerCookies.js');
|
|
7
|
+
var authRedirects = require('../helpers/authRedirects.js');
|
|
8
8
|
|
|
9
9
|
const createCallbackResponse = (context, appBaseUrl) => server.NextResponse.redirect(new URL(context.returnTo || '/', appBaseUrl));
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}
|
|
22
|
-
return '';
|
|
10
|
+
const createPostLoginRefreshResponse = (context, auth0Config, appBaseUrl) => {
|
|
11
|
+
const refreshUrl = new URL(auth0Config.postLoginRefreshEndpoint, appBaseUrl);
|
|
12
|
+
refreshUrl.searchParams.set('returnTo', context.returnTo || '/');
|
|
13
|
+
return server.NextResponse.redirect(refreshUrl);
|
|
14
|
+
};
|
|
15
|
+
const setLoginSessionData = (session) => {
|
|
16
|
+
const decodedIdToken = session.tokenSet.idToken
|
|
17
|
+
? jose.decodeJwt(session.tokenSet.idToken)
|
|
18
|
+
: null;
|
|
19
|
+
session.loggedInDate = Date.now();
|
|
20
|
+
session.amr = decodedIdToken ? decodedIdToken.amr : null;
|
|
23
21
|
};
|
|
24
|
-
const incompleteTokenErrorCode = 'ERR_INCOMPLETE_TOKEN';
|
|
25
22
|
const errorCodeRegex = /\b([A-Z][A-Z0-9_]*[A-Z0-9])\b/g;
|
|
26
|
-
const handleAuth0Error = ({ error, auth0Config, appBaseUrl,
|
|
27
|
-
const authorizedLocales = auth0Config.languageConfig.supported;
|
|
28
|
-
const locale = authorizedLocales.includes(localeFromUrl)
|
|
29
|
-
? localeFromUrl
|
|
30
|
-
: auth0Config.languageConfig.default;
|
|
23
|
+
const handleAuth0Error = ({ error, auth0Config, appBaseUrl, returnTo, onError, }) => {
|
|
31
24
|
const expectedErrors = [
|
|
32
25
|
'UNVERIFIED_EMAIL',
|
|
33
26
|
'INITIAL_UNVERIFIED_EMAIL',
|
|
34
|
-
incompleteTokenErrorCode,
|
|
27
|
+
authRedirects.incompleteTokenErrorCode,
|
|
35
28
|
];
|
|
36
29
|
let extractedErrorCode = '';
|
|
37
30
|
if (error.cause) {
|
|
@@ -39,29 +32,28 @@ const handleAuth0Error = ({ error, auth0Config, appBaseUrl, localeFromUrl, onErr
|
|
|
39
32
|
const matchedErrorCode = cause.message.match(errorCodeRegex);
|
|
40
33
|
extractedErrorCode = matchedErrorCode ? matchedErrorCode[0] : '';
|
|
41
34
|
}
|
|
42
|
-
if (extractedErrorCode === incompleteTokenErrorCode) {
|
|
43
|
-
|
|
44
|
-
console.info('[Auth-package] logging out user CAUSE: ERR_INCOMPLETE_TOKEN');
|
|
45
|
-
return server.NextResponse.redirect(new URL(auth0Config.logoutEndpoint, appBaseUrl));
|
|
35
|
+
if (extractedErrorCode === authRedirects.incompleteTokenErrorCode) {
|
|
36
|
+
return authRedirects.createIncompleteTokenLogoutRedirect({ auth0Config, appBaseUrl });
|
|
46
37
|
}
|
|
47
38
|
if (!expectedErrors.includes(extractedErrorCode)) {
|
|
48
39
|
onError?.(error);
|
|
49
40
|
// eslint-disable-next-line no-console
|
|
50
41
|
console.error('[Auth-package] error', error);
|
|
51
42
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
43
|
+
return authRedirects.createGlobalAuthErrorRedirect({
|
|
44
|
+
auth0Config,
|
|
45
|
+
appBaseUrl,
|
|
46
|
+
returnTo,
|
|
47
|
+
code: extractedErrorCode,
|
|
48
|
+
});
|
|
56
49
|
};
|
|
57
50
|
const onCallbackFactory = ({ auth0Config, appBaseUrl, onError, }) => async (error, context, session) => {
|
|
58
|
-
const localeFromUrl = getLocaleFromContext(context, appBaseUrl);
|
|
59
51
|
if (error) {
|
|
60
52
|
return handleAuth0Error({
|
|
61
53
|
error,
|
|
62
54
|
auth0Config,
|
|
63
55
|
appBaseUrl,
|
|
64
|
-
|
|
56
|
+
returnTo: context.returnTo,
|
|
65
57
|
onError,
|
|
66
58
|
});
|
|
67
59
|
}
|
|
@@ -70,49 +62,20 @@ const onCallbackFactory = ({ auth0Config, appBaseUrl, onError, }) => async (erro
|
|
|
70
62
|
}
|
|
71
63
|
const cookieStore = await headers.cookies();
|
|
72
64
|
const decodedToken = jose.decodeJwt(session.tokenSet.accessToken);
|
|
65
|
+
setLoginSessionData(session);
|
|
73
66
|
if (!decodedToken.complete) {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
message: incompleteTokenErrorCode,
|
|
78
|
-
})),
|
|
79
|
-
auth0Config,
|
|
80
|
-
appBaseUrl,
|
|
81
|
-
localeFromUrl,
|
|
82
|
-
onError,
|
|
83
|
-
});
|
|
67
|
+
// eslint-disable-next-line no-console
|
|
68
|
+
console.info('[Auth-package] incomplete token detected after callback, redirecting to post-login refresh');
|
|
69
|
+
return createPostLoginRefreshResponse(context, auth0Config, appBaseUrl);
|
|
84
70
|
}
|
|
85
|
-
const sellerIdsFromToken = decodedToken.sellerIds
|
|
86
|
-
.map((sellerId) => Number(sellerId))
|
|
87
|
-
.filter((sellerId) => Number.isFinite(sellerId));
|
|
88
|
-
const impersonatedSellerIdFromToken = decodedToken.isImpersonated
|
|
89
|
-
? sellerIdsFromToken[0]
|
|
90
|
-
: null;
|
|
91
71
|
const selectedFromCookie = cookieStore.get(auth0Config.selectedSellerIdCookie.name)?.value;
|
|
92
|
-
const parsedSelectedSellerId = selectedFromCookie
|
|
93
|
-
? Number(selectedFromCookie)
|
|
94
|
-
: undefined;
|
|
95
|
-
const selectedSellerId = getSelectedSellerId.getSelectedSellerId({
|
|
96
|
-
selectedFromCookie: parsedSelectedSellerId,
|
|
97
|
-
impersonatedFromCookie: impersonatedSellerIdFromToken ?? undefined,
|
|
98
|
-
sellerIdsFromToken: sellerIdsFromToken,
|
|
99
|
-
});
|
|
100
72
|
const response = createCallbackResponse(context, appBaseUrl);
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
response
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
...auth0Config.impersonatedSellerIdCookie,
|
|
108
|
-
maxAge: 0,
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
const decodedIdToken = session.tokenSet.idToken
|
|
112
|
-
? jose.decodeJwt(session.tokenSet.idToken)
|
|
113
|
-
: null;
|
|
114
|
-
session.loggedInDate = Date.now();
|
|
115
|
-
session.amr = decodedIdToken ? decodedIdToken.amr : null;
|
|
73
|
+
sellerCookies.setSellerIdCookiesOnResponse({
|
|
74
|
+
decodedToken,
|
|
75
|
+
response,
|
|
76
|
+
auth0Config,
|
|
77
|
+
selectedFromCookie: selectedFromCookie ?? undefined,
|
|
78
|
+
});
|
|
116
79
|
return response;
|
|
117
80
|
};
|
|
118
81
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onCallbackFactory.js","sources":["../../../../../src/server/hooks/onCallbackFactory.ts"],"sourcesContent":[null],"names":["NextResponse","
|
|
1
|
+
{"version":3,"file":"onCallbackFactory.js","sources":["../../../../../src/server/hooks/onCallbackFactory.ts"],"sourcesContent":[null],"names":["NextResponse","decodeJwt","incompleteTokenErrorCode","createIncompleteTokenLogoutRedirect","createGlobalAuthErrorRedirect","cookies","setSellerIdCookiesOnResponse"],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ var switchTenant = require('./switchTenant.js');
|
|
|
10
10
|
var requestId = require('./requestId.js');
|
|
11
11
|
var protectRoute = require('./protectRoute.js');
|
|
12
12
|
var profile = require('./profile.js');
|
|
13
|
+
var postLoginRefresh = require('./postLoginRefresh.js');
|
|
13
14
|
var logout = require('./logout.js');
|
|
14
15
|
var login = require('./login.js');
|
|
15
16
|
var crossApplicationStateSynchronization = require('./crossApplicationStateSynchronization.js');
|
|
@@ -17,11 +18,12 @@ var combineHeaders = require('./combineHeaders.js');
|
|
|
17
18
|
|
|
18
19
|
const log = debug.debug('@smg-automotive/auth:middleware');
|
|
19
20
|
const isAuthRoute = (pathname, auth0Config) => {
|
|
20
|
-
const { loginEndpoint, logoutEndpoint, callbackEndpoint, userProfileEndpoint, tokenEndpoint, } = auth0Config;
|
|
21
|
+
const { loginEndpoint, logoutEndpoint, callbackEndpoint, postLoginRefreshEndpoint, userProfileEndpoint, tokenEndpoint, } = auth0Config;
|
|
21
22
|
return [
|
|
22
23
|
loginEndpoint,
|
|
23
24
|
logoutEndpoint,
|
|
24
25
|
callbackEndpoint,
|
|
26
|
+
postLoginRefreshEndpoint,
|
|
25
27
|
userProfileEndpoint,
|
|
26
28
|
tokenEndpoint,
|
|
27
29
|
].includes(pathname);
|
|
@@ -92,6 +94,17 @@ const authMiddleware = async ({ request, isProtectedRoute, language, host, proto
|
|
|
92
94
|
log('User profile request handled', { requestId: requestId$1 });
|
|
93
95
|
return handleUserProfileResult;
|
|
94
96
|
}
|
|
97
|
+
// Post-login refresh handling - /api/auth/post-login-refresh
|
|
98
|
+
const postLoginRefreshResult = await postLoginRefresh.handlePostLoginRefreshRequest({
|
|
99
|
+
request,
|
|
100
|
+
auth0Instance,
|
|
101
|
+
auth0Config,
|
|
102
|
+
onError,
|
|
103
|
+
});
|
|
104
|
+
if (postLoginRefreshResult) {
|
|
105
|
+
log('Post-login refresh request handled', { requestId: requestId$1 });
|
|
106
|
+
return postLoginRefreshResult;
|
|
107
|
+
}
|
|
95
108
|
// Auth routes handling - /api/auth/*
|
|
96
109
|
let authResponse;
|
|
97
110
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/server/middleware/index.ts"],"sourcesContent":[null],"names":["debug","requestId","getOrCreateRequestId","getAuth0Instance","getAuth0Config","handleCrossDomainLogout","requestIdHeader","addLoginParams","handleSwitchTenantRequest","handleAccessTokenRequest","NextResponse","handleUserProfile","getLoginLink","deleteRelatedSessionCookies","crossApplicationStateSynchronization","protectRoute","combineHeaders"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/server/middleware/index.ts"],"sourcesContent":[null],"names":["debug","requestId","getOrCreateRequestId","getAuth0Instance","getAuth0Config","handleCrossDomainLogout","requestIdHeader","addLoginParams","handleSwitchTenantRequest","handleAccessTokenRequest","NextResponse","handleUserProfile","handlePostLoginRefreshRequest","getLoginLink","deleteRelatedSessionCookies","crossApplicationStateSynchronization","protectRoute","combineHeaders"],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var server = require('next/server');
|
|
4
|
+
var jose = require('jose');
|
|
5
|
+
var sellerCookies = require('../helpers/sellerCookies.js');
|
|
6
|
+
var authRedirects = require('../helpers/authRedirects.js');
|
|
7
|
+
var debug = require('../../lib/debug.js');
|
|
8
|
+
var requestId = require('./requestId.js');
|
|
9
|
+
|
|
10
|
+
const log = debug.debug('@smg-automotive/auth:postLoginRefresh');
|
|
11
|
+
const missingSessionErrorCode = 'MISSING_SESSION';
|
|
12
|
+
const unknownAuthErrorCode = 'UNKNOWN_AUTH_ERROR';
|
|
13
|
+
const postLoginRefreshDelayMs = 1000;
|
|
14
|
+
const sleep = (delayMs) => new Promise((resolve) => {
|
|
15
|
+
setTimeout(resolve, delayMs);
|
|
16
|
+
});
|
|
17
|
+
const getSafeReturnTo = ({ request, auth0Config, }) => {
|
|
18
|
+
const fallbackReturnTo = '/';
|
|
19
|
+
const rawReturnTo = request.nextUrl.searchParams.get('returnTo');
|
|
20
|
+
if (!rawReturnTo) {
|
|
21
|
+
return fallbackReturnTo;
|
|
22
|
+
}
|
|
23
|
+
try {
|
|
24
|
+
const returnToUrl = new URL(rawReturnTo, request.nextUrl.origin);
|
|
25
|
+
if (returnToUrl.origin !== request.nextUrl.origin) {
|
|
26
|
+
return fallbackReturnTo;
|
|
27
|
+
}
|
|
28
|
+
if (returnToUrl.pathname === auth0Config.postLoginRefreshEndpoint ||
|
|
29
|
+
returnToUrl.pathname === request.nextUrl.pathname) {
|
|
30
|
+
return fallbackReturnTo;
|
|
31
|
+
}
|
|
32
|
+
return `${returnToUrl.pathname}${returnToUrl.search}${returnToUrl.hash}`;
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
log('Failed to parse returnTo for post-login refresh', { error });
|
|
36
|
+
return fallbackReturnTo;
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
const handlePostLoginRefreshRequest = async ({ request, auth0Instance, auth0Config, onError, }) => {
|
|
40
|
+
if (request.nextUrl.pathname !== auth0Config.postLoginRefreshEndpoint)
|
|
41
|
+
return;
|
|
42
|
+
const requestId$1 = requestId.getOrCreateRequestId(request);
|
|
43
|
+
const returnTo = getSafeReturnTo({ request, auth0Config });
|
|
44
|
+
log('Handling post-login refresh request', { requestId: requestId$1, returnTo });
|
|
45
|
+
const session = await auth0Instance.getSession(request);
|
|
46
|
+
if (!session) {
|
|
47
|
+
log('Post-login refresh request failed: no session', { requestId: requestId$1 });
|
|
48
|
+
return authRedirects.createGlobalAuthErrorRedirect({
|
|
49
|
+
auth0Config,
|
|
50
|
+
appBaseUrl: request.nextUrl.origin,
|
|
51
|
+
code: missingSessionErrorCode,
|
|
52
|
+
returnTo,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
const selectedFromCookie = request.cookies.get(auth0Config.selectedSellerIdCookie.name)?.value;
|
|
56
|
+
await sleep(postLoginRefreshDelayMs);
|
|
57
|
+
const response = server.NextResponse.redirect(new URL(returnTo, request.nextUrl.origin));
|
|
58
|
+
try {
|
|
59
|
+
const { token, expiresAt } = await auth0Instance.getAccessToken(request, response, { refresh: true });
|
|
60
|
+
log('Post-login token refresh completed', { requestId: requestId$1, expiresAt });
|
|
61
|
+
const decodedToken = jose.decodeJwt(token);
|
|
62
|
+
if (decodedToken.complete === true) {
|
|
63
|
+
sellerCookies.setSellerIdCookiesOnResponse({
|
|
64
|
+
decodedToken,
|
|
65
|
+
response,
|
|
66
|
+
auth0Config,
|
|
67
|
+
selectedFromCookie,
|
|
68
|
+
});
|
|
69
|
+
return response;
|
|
70
|
+
}
|
|
71
|
+
log('Post-login token is still incomplete after refresh', { requestId: requestId$1 });
|
|
72
|
+
return authRedirects.createIncompleteTokenLogoutRedirect({
|
|
73
|
+
auth0Config,
|
|
74
|
+
appBaseUrl: request.nextUrl.origin,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
const authError = error;
|
|
79
|
+
log('Post-login token refresh failed', {
|
|
80
|
+
requestId: requestId$1,
|
|
81
|
+
message: authError.message,
|
|
82
|
+
code: authError.code,
|
|
83
|
+
});
|
|
84
|
+
onError?.(authError);
|
|
85
|
+
return authRedirects.createGlobalAuthErrorRedirect({
|
|
86
|
+
auth0Config,
|
|
87
|
+
appBaseUrl: request.nextUrl.origin,
|
|
88
|
+
code: authError.code || unknownAuthErrorCode,
|
|
89
|
+
returnTo,
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
exports.handlePostLoginRefreshRequest = handlePostLoginRefreshRequest;
|
|
95
|
+
//# sourceMappingURL=postLoginRefresh.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postLoginRefresh.js","sources":["../../../../../src/server/middleware/postLoginRefresh.ts"],"sourcesContent":[null],"names":["debug","requestId","getOrCreateRequestId","createGlobalAuthErrorRedirect","NextResponse","decodeJwt","setSellerIdCookiesOnResponse","createIncompleteTokenLogoutRedirect"],"mappings":"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"}
|
package/dist/esm/config/auth0.js
CHANGED
|
@@ -30,6 +30,8 @@ const auth0Config = {
|
|
|
30
30
|
tokenEndpoint: '/api/auth/access-token',
|
|
31
31
|
// Endpoint to fetch and refresh token
|
|
32
32
|
callbackEndpoint: '/api/auth/callback',
|
|
33
|
+
// Endpoint to refresh once after signup callback when Auth0 token claims are not synced yet
|
|
34
|
+
postLoginRefreshEndpoint: '/api/auth/post-login-refresh',
|
|
33
35
|
// Endpoint to fetch user profile
|
|
34
36
|
userProfileEndpoint: '/api/auth/profile',
|
|
35
37
|
// Endpoint to switch selected tenant (cookie-only, no re-login)
|
|
@@ -96,6 +98,7 @@ const getAuth0Config = () => {
|
|
|
96
98
|
tokenEndpoint: `${runtimeConfig.proxyPathSegment}${runtimeConfig.tokenEndpoint}`,
|
|
97
99
|
userProfileEndpoint: `${runtimeConfig.proxyPathSegment}${runtimeConfig.userProfileEndpoint}`,
|
|
98
100
|
callbackEndpoint: `${runtimeConfig.proxyPathSegment}${runtimeConfig.callbackEndpoint}`,
|
|
101
|
+
postLoginRefreshEndpoint: `${runtimeConfig.proxyPathSegment}${runtimeConfig.postLoginRefreshEndpoint}`,
|
|
99
102
|
switchTenantEndpoint: `${runtimeConfig.proxyPathSegment}${runtimeConfig.switchTenantEndpoint}`,
|
|
100
103
|
};
|
|
101
104
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth0.js","sources":["../../../../src/config/auth0.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auth0.js","sources":["../../../../src/config/auth0.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ const authConfig = (args = {}) => ({
|
|
|
4
4
|
logoutEndpoint: '/api/auth/logout',
|
|
5
5
|
tokenEndpoint: '/api/auth/token',
|
|
6
6
|
callbackEndpoint: '/api/auth/callback',
|
|
7
|
+
postLoginRefreshEndpoint: '/api/auth/post-login-refresh',
|
|
7
8
|
userProfileEndpoint: '/api/auth/me',
|
|
8
9
|
switchTenantEndpoint: '/api/auth/switch-tenant',
|
|
9
10
|
sessionDuration,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authConfig.js","sources":["../../../../src/fixtures/authConfig.ts"],"sourcesContent":[null],"names":[],"mappings":"AAEA,MAAM,eAAe,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAEnC,MAAM,UAAU,GAAG,CAAC,OAA6B,EAAE,MAAmB;AAC3E,IAAA,aAAa,EAAE,iBAAiB;AAChC,IAAA,cAAc,EAAE,kBAAkB;AAClC,IAAA,aAAa,EAAE,iBAAiB;AAChC,IAAA,gBAAgB,EAAE,oBAAoB;AACtC,IAAA,mBAAmB,EAAE,cAAc;AACnC,IAAA,oBAAoB,EAAE,yBAAyB;IAC/C,eAAe;AACf,IAAA,sBAAsB,EAAE;AACtB,QAAA,IAAI,EAAE,kBAAkB;AACxB,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,IAAI;AACZ,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,IAAI,EAAE,GAAG;AACV,KAAA;AACD,IAAA,0BAA0B,EAAE;AAC1B,QAAA,IAAI,EAAE,sBAAsB;AAC5B,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE;AACnB,QAAA,MAAM,EAAE,IAAI;AACZ,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,IAAI,EAAE,GAAG;AACV,KAAA;AACD,IAAA,gBAAgB,EAAE,gBAAgB;AAClC,IAAA,qBAAqB,EAAE,cAAc;AACrC,IAAA,sBAAsB,EAAE,cAAc;AACtC,IAAA,sBAAsB,EAAE,KAAK;AAC7B,IAAA,cAAc,EAAE;AACd,QAAA,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AACpC,KAAA;AACD,IAAA,MAAM,EAAE,mDAAmD;AAC3D,IAAA,mBAAmB,EAAE,cAAc;AACnC,IAAA,eAAe,EAAE,EAAE;AACnB,IAAA,iBAAiB,EAAE,SAAS;AAC5B,IAAA,QAAQ,EAAE,iDAAiD;AAC3D,IAAA,GAAG,IAAI;AACR,CAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"authConfig.js","sources":["../../../../src/fixtures/authConfig.ts"],"sourcesContent":[null],"names":[],"mappings":"AAEA,MAAM,eAAe,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAEnC,MAAM,UAAU,GAAG,CAAC,OAA6B,EAAE,MAAmB;AAC3E,IAAA,aAAa,EAAE,iBAAiB;AAChC,IAAA,cAAc,EAAE,kBAAkB;AAClC,IAAA,aAAa,EAAE,iBAAiB;AAChC,IAAA,gBAAgB,EAAE,oBAAoB;AACtC,IAAA,wBAAwB,EAAE,8BAA8B;AACxD,IAAA,mBAAmB,EAAE,cAAc;AACnC,IAAA,oBAAoB,EAAE,yBAAyB;IAC/C,eAAe;AACf,IAAA,sBAAsB,EAAE;AACtB,QAAA,IAAI,EAAE,kBAAkB;AACxB,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,IAAI;AACZ,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,IAAI,EAAE,GAAG;AACV,KAAA;AACD,IAAA,0BAA0B,EAAE;AAC1B,QAAA,IAAI,EAAE,sBAAsB;AAC5B,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE;AACnB,QAAA,MAAM,EAAE,IAAI;AACZ,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,IAAI,EAAE,GAAG;AACV,KAAA;AACD,IAAA,gBAAgB,EAAE,gBAAgB;AAClC,IAAA,qBAAqB,EAAE,cAAc;AACrC,IAAA,sBAAsB,EAAE,cAAc;AACtC,IAAA,sBAAsB,EAAE,KAAK;AAC7B,IAAA,cAAc,EAAE;AACd,QAAA,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AACpC,KAAA;AACD,IAAA,MAAM,EAAE,mDAAmD;AAC3D,IAAA,mBAAmB,EAAE,cAAc;AACnC,IAAA,eAAe,EAAE,EAAE;AACnB,IAAA,iBAAiB,EAAE,SAAS;AAC5B,IAAA,QAAQ,EAAE,iDAAiD;AAC3D,IAAA,GAAG,IAAI;AACR,CAAA;;;;"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { NextResponse } from 'next/server';
|
|
2
|
+
|
|
3
|
+
const incompleteTokenErrorCode = 'ERR_INCOMPLETE_TOKEN';
|
|
4
|
+
const getLocaleFromReturnTo = ({ returnTo, auth0Config, appBaseUrl, }) => {
|
|
5
|
+
if (!returnTo) {
|
|
6
|
+
return auth0Config.languageConfig.default;
|
|
7
|
+
}
|
|
8
|
+
try {
|
|
9
|
+
const url = new URL(returnTo, appBaseUrl);
|
|
10
|
+
const locale = url.searchParams.get('locale') || url.pathname.split('/')[1];
|
|
11
|
+
if (auth0Config.languageConfig.supported.includes(locale)) {
|
|
12
|
+
return locale;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
// Ignore invalid returnTo values and fall back to the configured default locale.
|
|
17
|
+
}
|
|
18
|
+
return auth0Config.languageConfig.default;
|
|
19
|
+
};
|
|
20
|
+
const createGlobalAuthErrorRedirect = ({ auth0Config, appBaseUrl, returnTo, code, }) => {
|
|
21
|
+
const locale = getLocaleFromReturnTo({ returnTo, auth0Config, appBaseUrl });
|
|
22
|
+
const errorUrl = new URL(`/${locale}${auth0Config.globalAuthErrorPath}`, appBaseUrl);
|
|
23
|
+
if (code) {
|
|
24
|
+
errorUrl.searchParams.set('code', code);
|
|
25
|
+
}
|
|
26
|
+
return NextResponse.redirect(errorUrl);
|
|
27
|
+
};
|
|
28
|
+
const createIncompleteTokenLogoutRedirect = ({ auth0Config, appBaseUrl, }) => {
|
|
29
|
+
// eslint-disable-next-line no-console
|
|
30
|
+
console.info(`[Auth-package] logging out user CAUSE: ${incompleteTokenErrorCode}`);
|
|
31
|
+
return NextResponse.redirect(new URL(auth0Config.logoutEndpoint, appBaseUrl));
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export { createGlobalAuthErrorRedirect, createIncompleteTokenLogoutRedirect, getLocaleFromReturnTo, incompleteTokenErrorCode };
|
|
35
|
+
//# sourceMappingURL=authRedirects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authRedirects.js","sources":["../../../../../src/server/helpers/authRedirects.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAMO,MAAM,wBAAwB,GAAG;AAEjC,MAAM,qBAAqB,GAAG,CAAC,EACpC,QAAQ,EACR,WAAW,EACX,UAAU,GAKX,KAAc;IACb,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,OAAO,WAAW,CAAC,cAAc,CAAC,OAAO;IAC3C;AAEA,IAAA,IAAI;QACF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC;QACzC,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAE3E,IAAI,WAAW,CAAC,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAkB,CAAC,EAAE;AACrE,YAAA,OAAO,MAAkB;QAC3B;IACF;AAAE,IAAA,MAAM;;IAER;AAEA,IAAA,OAAO,WAAW,CAAC,cAAc,CAAC,OAAO;AAC3C;AAEO,MAAM,6BAA6B,GAAG,CAAC,EAC5C,WAAW,EACX,UAAU,EACV,QAAQ,EACR,IAAI,GAML,KAAkB;AACjB,IAAA,MAAM,MAAM,GAAG,qBAAqB,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AAC3E,IAAA,MAAM,QAAQ,GAAG,IAAI,GAAG,CACtB,CAAA,CAAA,EAAI,MAAM,CAAA,EAAG,WAAW,CAAC,mBAAmB,CAAA,CAAE,EAC9C,UAAU,CACX;IAED,IAAI,IAAI,EAAE;QACR,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;IACzC;AAEA,IAAA,OAAO,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACxC;AAEO,MAAM,mCAAmC,GAAG,CAAC,EAClD,WAAW,EACX,UAAU,GAIX,KAAkB;;AAEjB,IAAA,OAAO,CAAC,IAAI,CACV,0CAA0C,wBAAwB,CAAA,CAAE,CACrE;AAED,IAAA,OAAO,YAAY,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;AAC/E;;;;"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { getSelectedSellerId } from '../../lib/getSelectedSellerId.js';
|
|
2
|
+
|
|
3
|
+
const setSellerIdCookiesOnResponse = ({ decodedToken, response, auth0Config, selectedFromCookie, }) => {
|
|
4
|
+
const sellerIdsFromToken = decodedToken.sellerIds
|
|
5
|
+
.map((sellerId) => Number(sellerId))
|
|
6
|
+
.filter((sellerId) => Number.isFinite(sellerId));
|
|
7
|
+
const impersonatedSellerIdFromToken = decodedToken.isImpersonated
|
|
8
|
+
? sellerIdsFromToken[0]
|
|
9
|
+
: null;
|
|
10
|
+
const parsedSelectedSellerId = selectedFromCookie
|
|
11
|
+
? Number(selectedFromCookie)
|
|
12
|
+
: undefined;
|
|
13
|
+
const selectedSellerId = getSelectedSellerId({
|
|
14
|
+
selectedFromCookie: parsedSelectedSellerId,
|
|
15
|
+
impersonatedFromCookie: impersonatedSellerIdFromToken ?? undefined,
|
|
16
|
+
sellerIdsFromToken: sellerIdsFromToken,
|
|
17
|
+
});
|
|
18
|
+
response.cookies.set(auth0Config.selectedSellerIdCookie.name, String(selectedSellerId), auth0Config.selectedSellerIdCookie);
|
|
19
|
+
if (impersonatedSellerIdFromToken) {
|
|
20
|
+
response.cookies.set(auth0Config.impersonatedSellerIdCookie.name, String(impersonatedSellerIdFromToken), auth0Config.impersonatedSellerIdCookie);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
response.cookies.set(auth0Config.impersonatedSellerIdCookie.name, '', {
|
|
24
|
+
...auth0Config.impersonatedSellerIdCookie,
|
|
25
|
+
maxAge: 0,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export { setSellerIdCookiesOnResponse };
|
|
31
|
+
//# sourceMappingURL=sellerCookies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sellerCookies.js","sources":["../../../../../src/server/helpers/sellerCookies.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAMO,MAAM,4BAA4B,GAAG,CAAC,EAC3C,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,kBAAkB,GAMnB,KAAU;AACT,IAAA,MAAM,kBAAkB,GAAG,YAAY,CAAC;SACrC,GAAG,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC;AAClC,SAAA,MAAM,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAElD,IAAA,MAAM,6BAA6B,GAAG,YAAY,CAAC;AACjD,UAAE,kBAAkB,CAAC,CAAC;UACpB,IAAI;IAER,MAAM,sBAAsB,GAAG;AAC7B,UAAE,MAAM,CAAC,kBAAkB;UACzB,SAAS;IAEb,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AAC3C,QAAA,kBAAkB,EAAE,sBAAsB;QAC1C,sBAAsB,EAAE,6BAA6B,IAAI,SAAS;AAClE,QAAA,kBAAkB,EAAE,kBAA2C;AAChE,KAAA,CAAC;IAEF,QAAQ,CAAC,OAAO,CAAC,GAAG,CAClB,WAAW,CAAC,sBAAsB,CAAC,IAAI,EACvC,MAAM,CAAC,gBAAgB,CAAC,EACxB,WAAW,CAAC,sBAAsB,CACnC;IAED,IAAI,6BAA6B,EAAE;QACjC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAClB,WAAW,CAAC,0BAA0B,CAAC,IAAI,EAC3C,MAAM,CAAC,6BAA6B,CAAC,EACrC,WAAW,CAAC,0BAA0B,CACvC;IACH;SAAO;AACL,QAAA,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,0BAA0B,CAAC,IAAI,EAAE,EAAE,EAAE;YACpE,GAAG,WAAW,CAAC,0BAA0B;AACzC,YAAA,MAAM,EAAE,CAAC;AACV,SAAA,CAAC;IACJ;AACF;;;;"}
|
|
@@ -1,31 +1,24 @@
|
|
|
1
1
|
import { NextResponse } from 'next/server';
|
|
2
2
|
import { cookies } from 'next/headers';
|
|
3
3
|
import { decodeJwt } from 'jose';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { setSellerIdCookiesOnResponse } from '../helpers/sellerCookies.js';
|
|
5
|
+
import { incompleteTokenErrorCode, createIncompleteTokenLogoutRedirect, createGlobalAuthErrorRedirect } from '../helpers/authRedirects.js';
|
|
6
6
|
|
|
7
7
|
const createCallbackResponse = (context, appBaseUrl) => NextResponse.redirect(new URL(context.returnTo || '/', appBaseUrl));
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
20
|
-
return '';
|
|
8
|
+
const createPostLoginRefreshResponse = (context, auth0Config, appBaseUrl) => {
|
|
9
|
+
const refreshUrl = new URL(auth0Config.postLoginRefreshEndpoint, appBaseUrl);
|
|
10
|
+
refreshUrl.searchParams.set('returnTo', context.returnTo || '/');
|
|
11
|
+
return NextResponse.redirect(refreshUrl);
|
|
12
|
+
};
|
|
13
|
+
const setLoginSessionData = (session) => {
|
|
14
|
+
const decodedIdToken = session.tokenSet.idToken
|
|
15
|
+
? decodeJwt(session.tokenSet.idToken)
|
|
16
|
+
: null;
|
|
17
|
+
session.loggedInDate = Date.now();
|
|
18
|
+
session.amr = decodedIdToken ? decodedIdToken.amr : null;
|
|
21
19
|
};
|
|
22
|
-
const incompleteTokenErrorCode = 'ERR_INCOMPLETE_TOKEN';
|
|
23
20
|
const errorCodeRegex = /\b([A-Z][A-Z0-9_]*[A-Z0-9])\b/g;
|
|
24
|
-
const handleAuth0Error = ({ error, auth0Config, appBaseUrl,
|
|
25
|
-
const authorizedLocales = auth0Config.languageConfig.supported;
|
|
26
|
-
const locale = authorizedLocales.includes(localeFromUrl)
|
|
27
|
-
? localeFromUrl
|
|
28
|
-
: auth0Config.languageConfig.default;
|
|
21
|
+
const handleAuth0Error = ({ error, auth0Config, appBaseUrl, returnTo, onError, }) => {
|
|
29
22
|
const expectedErrors = [
|
|
30
23
|
'UNVERIFIED_EMAIL',
|
|
31
24
|
'INITIAL_UNVERIFIED_EMAIL',
|
|
@@ -38,28 +31,27 @@ const handleAuth0Error = ({ error, auth0Config, appBaseUrl, localeFromUrl, onErr
|
|
|
38
31
|
extractedErrorCode = matchedErrorCode ? matchedErrorCode[0] : '';
|
|
39
32
|
}
|
|
40
33
|
if (extractedErrorCode === incompleteTokenErrorCode) {
|
|
41
|
-
|
|
42
|
-
console.info('[Auth-package] logging out user CAUSE: ERR_INCOMPLETE_TOKEN');
|
|
43
|
-
return NextResponse.redirect(new URL(auth0Config.logoutEndpoint, appBaseUrl));
|
|
34
|
+
return createIncompleteTokenLogoutRedirect({ auth0Config, appBaseUrl });
|
|
44
35
|
}
|
|
45
36
|
if (!expectedErrors.includes(extractedErrorCode)) {
|
|
46
37
|
onError?.(error);
|
|
47
38
|
// eslint-disable-next-line no-console
|
|
48
39
|
console.error('[Auth-package] error', error);
|
|
49
40
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
41
|
+
return createGlobalAuthErrorRedirect({
|
|
42
|
+
auth0Config,
|
|
43
|
+
appBaseUrl,
|
|
44
|
+
returnTo,
|
|
45
|
+
code: extractedErrorCode,
|
|
46
|
+
});
|
|
54
47
|
};
|
|
55
48
|
const onCallbackFactory = ({ auth0Config, appBaseUrl, onError, }) => async (error, context, session) => {
|
|
56
|
-
const localeFromUrl = getLocaleFromContext(context, appBaseUrl);
|
|
57
49
|
if (error) {
|
|
58
50
|
return handleAuth0Error({
|
|
59
51
|
error,
|
|
60
52
|
auth0Config,
|
|
61
53
|
appBaseUrl,
|
|
62
|
-
|
|
54
|
+
returnTo: context.returnTo,
|
|
63
55
|
onError,
|
|
64
56
|
});
|
|
65
57
|
}
|
|
@@ -68,49 +60,20 @@ const onCallbackFactory = ({ auth0Config, appBaseUrl, onError, }) => async (erro
|
|
|
68
60
|
}
|
|
69
61
|
const cookieStore = await cookies();
|
|
70
62
|
const decodedToken = decodeJwt(session.tokenSet.accessToken);
|
|
63
|
+
setLoginSessionData(session);
|
|
71
64
|
if (!decodedToken.complete) {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
message: incompleteTokenErrorCode,
|
|
76
|
-
})),
|
|
77
|
-
auth0Config,
|
|
78
|
-
appBaseUrl,
|
|
79
|
-
localeFromUrl,
|
|
80
|
-
onError,
|
|
81
|
-
});
|
|
65
|
+
// eslint-disable-next-line no-console
|
|
66
|
+
console.info('[Auth-package] incomplete token detected after callback, redirecting to post-login refresh');
|
|
67
|
+
return createPostLoginRefreshResponse(context, auth0Config, appBaseUrl);
|
|
82
68
|
}
|
|
83
|
-
const sellerIdsFromToken = decodedToken.sellerIds
|
|
84
|
-
.map((sellerId) => Number(sellerId))
|
|
85
|
-
.filter((sellerId) => Number.isFinite(sellerId));
|
|
86
|
-
const impersonatedSellerIdFromToken = decodedToken.isImpersonated
|
|
87
|
-
? sellerIdsFromToken[0]
|
|
88
|
-
: null;
|
|
89
69
|
const selectedFromCookie = cookieStore.get(auth0Config.selectedSellerIdCookie.name)?.value;
|
|
90
|
-
const parsedSelectedSellerId = selectedFromCookie
|
|
91
|
-
? Number(selectedFromCookie)
|
|
92
|
-
: undefined;
|
|
93
|
-
const selectedSellerId = getSelectedSellerId({
|
|
94
|
-
selectedFromCookie: parsedSelectedSellerId,
|
|
95
|
-
impersonatedFromCookie: impersonatedSellerIdFromToken ?? undefined,
|
|
96
|
-
sellerIdsFromToken: sellerIdsFromToken,
|
|
97
|
-
});
|
|
98
70
|
const response = createCallbackResponse(context, appBaseUrl);
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
response
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
...auth0Config.impersonatedSellerIdCookie,
|
|
106
|
-
maxAge: 0,
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
const decodedIdToken = session.tokenSet.idToken
|
|
110
|
-
? decodeJwt(session.tokenSet.idToken)
|
|
111
|
-
: null;
|
|
112
|
-
session.loggedInDate = Date.now();
|
|
113
|
-
session.amr = decodedIdToken ? decodedIdToken.amr : null;
|
|
71
|
+
setSellerIdCookiesOnResponse({
|
|
72
|
+
decodedToken,
|
|
73
|
+
response,
|
|
74
|
+
auth0Config,
|
|
75
|
+
selectedFromCookie: selectedFromCookie ?? undefined,
|
|
76
|
+
});
|
|
114
77
|
return response;
|
|
115
78
|
};
|
|
116
79
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onCallbackFactory.js","sources":["../../../../../src/server/hooks/onCallbackFactory.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"onCallbackFactory.js","sources":["../../../../../src/server/hooks/onCallbackFactory.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ import { handleSwitchTenantRequest } from './switchTenant.js';
|
|
|
8
8
|
import { getOrCreateRequestId, requestIdHeader } from './requestId.js';
|
|
9
9
|
import { protectRoute } from './protectRoute.js';
|
|
10
10
|
import { handleUserProfile } from './profile.js';
|
|
11
|
+
import { handlePostLoginRefreshRequest } from './postLoginRefresh.js';
|
|
11
12
|
import { handleCrossDomainLogout, deleteRelatedSessionCookies } from './logout.js';
|
|
12
13
|
import { addLoginParams } from './login.js';
|
|
13
14
|
import { crossApplicationStateSynchronization } from './crossApplicationStateSynchronization.js';
|
|
@@ -15,11 +16,12 @@ import { combineHeaders } from './combineHeaders.js';
|
|
|
15
16
|
|
|
16
17
|
const log = debug('@smg-automotive/auth:middleware');
|
|
17
18
|
const isAuthRoute = (pathname, auth0Config) => {
|
|
18
|
-
const { loginEndpoint, logoutEndpoint, callbackEndpoint, userProfileEndpoint, tokenEndpoint, } = auth0Config;
|
|
19
|
+
const { loginEndpoint, logoutEndpoint, callbackEndpoint, postLoginRefreshEndpoint, userProfileEndpoint, tokenEndpoint, } = auth0Config;
|
|
19
20
|
return [
|
|
20
21
|
loginEndpoint,
|
|
21
22
|
logoutEndpoint,
|
|
22
23
|
callbackEndpoint,
|
|
24
|
+
postLoginRefreshEndpoint,
|
|
23
25
|
userProfileEndpoint,
|
|
24
26
|
tokenEndpoint,
|
|
25
27
|
].includes(pathname);
|
|
@@ -90,6 +92,17 @@ const authMiddleware = async ({ request, isProtectedRoute, language, host, proto
|
|
|
90
92
|
log('User profile request handled', { requestId });
|
|
91
93
|
return handleUserProfileResult;
|
|
92
94
|
}
|
|
95
|
+
// Post-login refresh handling - /api/auth/post-login-refresh
|
|
96
|
+
const postLoginRefreshResult = await handlePostLoginRefreshRequest({
|
|
97
|
+
request,
|
|
98
|
+
auth0Instance,
|
|
99
|
+
auth0Config,
|
|
100
|
+
onError,
|
|
101
|
+
});
|
|
102
|
+
if (postLoginRefreshResult) {
|
|
103
|
+
log('Post-login refresh request handled', { requestId });
|
|
104
|
+
return postLoginRefreshResult;
|
|
105
|
+
}
|
|
93
106
|
// Auth routes handling - /api/auth/*
|
|
94
107
|
let authResponse;
|
|
95
108
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/server/middleware/index.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/server/middleware/index.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { NextResponse } from 'next/server';
|
|
2
|
+
import { decodeJwt } from 'jose';
|
|
3
|
+
import { setSellerIdCookiesOnResponse } from '../helpers/sellerCookies.js';
|
|
4
|
+
import { createGlobalAuthErrorRedirect, createIncompleteTokenLogoutRedirect } from '../helpers/authRedirects.js';
|
|
5
|
+
import { debug } from '../../lib/debug.js';
|
|
6
|
+
import { getOrCreateRequestId } from './requestId.js';
|
|
7
|
+
|
|
8
|
+
const log = debug('@smg-automotive/auth:postLoginRefresh');
|
|
9
|
+
const missingSessionErrorCode = 'MISSING_SESSION';
|
|
10
|
+
const unknownAuthErrorCode = 'UNKNOWN_AUTH_ERROR';
|
|
11
|
+
const postLoginRefreshDelayMs = 1000;
|
|
12
|
+
const sleep = (delayMs) => new Promise((resolve) => {
|
|
13
|
+
setTimeout(resolve, delayMs);
|
|
14
|
+
});
|
|
15
|
+
const getSafeReturnTo = ({ request, auth0Config, }) => {
|
|
16
|
+
const fallbackReturnTo = '/';
|
|
17
|
+
const rawReturnTo = request.nextUrl.searchParams.get('returnTo');
|
|
18
|
+
if (!rawReturnTo) {
|
|
19
|
+
return fallbackReturnTo;
|
|
20
|
+
}
|
|
21
|
+
try {
|
|
22
|
+
const returnToUrl = new URL(rawReturnTo, request.nextUrl.origin);
|
|
23
|
+
if (returnToUrl.origin !== request.nextUrl.origin) {
|
|
24
|
+
return fallbackReturnTo;
|
|
25
|
+
}
|
|
26
|
+
if (returnToUrl.pathname === auth0Config.postLoginRefreshEndpoint ||
|
|
27
|
+
returnToUrl.pathname === request.nextUrl.pathname) {
|
|
28
|
+
return fallbackReturnTo;
|
|
29
|
+
}
|
|
30
|
+
return `${returnToUrl.pathname}${returnToUrl.search}${returnToUrl.hash}`;
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
log('Failed to parse returnTo for post-login refresh', { error });
|
|
34
|
+
return fallbackReturnTo;
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
const handlePostLoginRefreshRequest = async ({ request, auth0Instance, auth0Config, onError, }) => {
|
|
38
|
+
if (request.nextUrl.pathname !== auth0Config.postLoginRefreshEndpoint)
|
|
39
|
+
return;
|
|
40
|
+
const requestId = getOrCreateRequestId(request);
|
|
41
|
+
const returnTo = getSafeReturnTo({ request, auth0Config });
|
|
42
|
+
log('Handling post-login refresh request', { requestId, returnTo });
|
|
43
|
+
const session = await auth0Instance.getSession(request);
|
|
44
|
+
if (!session) {
|
|
45
|
+
log('Post-login refresh request failed: no session', { requestId });
|
|
46
|
+
return createGlobalAuthErrorRedirect({
|
|
47
|
+
auth0Config,
|
|
48
|
+
appBaseUrl: request.nextUrl.origin,
|
|
49
|
+
code: missingSessionErrorCode,
|
|
50
|
+
returnTo,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
const selectedFromCookie = request.cookies.get(auth0Config.selectedSellerIdCookie.name)?.value;
|
|
54
|
+
await sleep(postLoginRefreshDelayMs);
|
|
55
|
+
const response = NextResponse.redirect(new URL(returnTo, request.nextUrl.origin));
|
|
56
|
+
try {
|
|
57
|
+
const { token, expiresAt } = await auth0Instance.getAccessToken(request, response, { refresh: true });
|
|
58
|
+
log('Post-login token refresh completed', { requestId, expiresAt });
|
|
59
|
+
const decodedToken = decodeJwt(token);
|
|
60
|
+
if (decodedToken.complete === true) {
|
|
61
|
+
setSellerIdCookiesOnResponse({
|
|
62
|
+
decodedToken,
|
|
63
|
+
response,
|
|
64
|
+
auth0Config,
|
|
65
|
+
selectedFromCookie,
|
|
66
|
+
});
|
|
67
|
+
return response;
|
|
68
|
+
}
|
|
69
|
+
log('Post-login token is still incomplete after refresh', { requestId });
|
|
70
|
+
return createIncompleteTokenLogoutRedirect({
|
|
71
|
+
auth0Config,
|
|
72
|
+
appBaseUrl: request.nextUrl.origin,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
const authError = error;
|
|
77
|
+
log('Post-login token refresh failed', {
|
|
78
|
+
requestId,
|
|
79
|
+
message: authError.message,
|
|
80
|
+
code: authError.code,
|
|
81
|
+
});
|
|
82
|
+
onError?.(authError);
|
|
83
|
+
return createGlobalAuthErrorRedirect({
|
|
84
|
+
auth0Config,
|
|
85
|
+
appBaseUrl: request.nextUrl.origin,
|
|
86
|
+
code: authError.code || unknownAuthErrorCode,
|
|
87
|
+
returnTo,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
export { handlePostLoginRefreshRequest };
|
|
93
|
+
//# sourceMappingURL=postLoginRefresh.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postLoginRefresh.js","sources":["../../../../../src/server/middleware/postLoginRefresh.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/dist/fixtures.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as Auth0Config, E as EnrichedSessionUser, a as Entitlements } from './sessionUser-
|
|
1
|
+
import { A as Auth0Config, E as EnrichedSessionUser, a as Entitlements } from './sessionUser-sPuqul_E.js';
|
|
2
2
|
import '@smg-automotive/i18n-pkg';
|
|
3
3
|
import '@auth0/nextjs-auth0/types';
|
|
4
4
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { A as AuthProvider, a as AuthProviderProps } from './Auth-
|
|
2
|
-
import { N as NonEmptyArray, M as MfaEnrollmentType, b as MfaEnrollmentTicket, A as Auth0Config, E as EnrichedSessionUser } from './sessionUser-
|
|
3
|
-
export { c as Auth0User, d as Auth0UserType, e as AuthSessionData, I as IncompleteSessionUser, S as SessionInfo, f as SessionUser } from './sessionUser-
|
|
1
|
+
export { A as AuthProvider, a as AuthProviderProps } from './Auth-lfX7CuuS.js';
|
|
2
|
+
import { N as NonEmptyArray, M as MfaEnrollmentType, b as MfaEnrollmentTicket, A as Auth0Config, E as EnrichedSessionUser } from './sessionUser-sPuqul_E.js';
|
|
3
|
+
export { c as Auth0User, d as Auth0UserType, e as AuthSessionData, I as IncompleteSessionUser, S as SessionInfo, f as SessionUser } from './sessionUser-sPuqul_E.js';
|
|
4
4
|
import { Language } from '@smg-automotive/i18n-pkg';
|
|
5
5
|
import 'react';
|
|
6
6
|
import '@auth0/nextjs-auth0/types';
|
package/dist/server.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { NextRequest, NextResponse } from 'next/server';
|
|
2
2
|
import { Language } from '@smg-automotive/i18n-pkg';
|
|
3
|
-
import { a as AuthProviderProps } from './Auth-
|
|
4
|
-
import { f as SessionUser, S as SessionInfo } from './sessionUser-
|
|
3
|
+
import { a as AuthProviderProps } from './Auth-lfX7CuuS.js';
|
|
4
|
+
import { f as SessionUser, S as SessionInfo } from './sessionUser-sPuqul_E.js';
|
|
5
5
|
import 'react';
|
|
6
6
|
import '@auth0/nextjs-auth0/types';
|
|
7
7
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@smg-automotive/auth",
|
|
3
|
-
"version": "9.1.
|
|
3
|
+
"version": "9.1.3",
|
|
4
4
|
"description": "SMG Automotive auth package",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
"@rollup/plugin-commonjs": "29.0.2",
|
|
75
75
|
"@rollup/plugin-node-resolve": "16.0.3",
|
|
76
76
|
"@rollup/plugin-typescript": "12.3.0",
|
|
77
|
-
"@smg-automotive/eslint-config": "6.0.
|
|
77
|
+
"@smg-automotive/eslint-config": "6.0.2",
|
|
78
78
|
"@testing-library/dom": "10.4.1",
|
|
79
79
|
"@testing-library/jest-dom": "6.9.1",
|
|
80
80
|
"@testing-library/react": "16.3.2",
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
"@types/debug": "4.1.13",
|
|
83
83
|
"@types/react": "19.2.14",
|
|
84
84
|
"dotenv": "17.4.2",
|
|
85
|
-
"eslint": "10.2.
|
|
85
|
+
"eslint": "10.2.1",
|
|
86
86
|
"jest": "30.3.0",
|
|
87
87
|
"jest-environment-jsdom": "30.3.0",
|
|
88
88
|
"jest-fetch-mock": "3.0.3",
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
"react": "19.2.5",
|
|
91
91
|
"react-dom": "19.2.5",
|
|
92
92
|
"rimraf": "6.1.3",
|
|
93
|
-
"rollup": "4.60.
|
|
93
|
+
"rollup": "4.60.2",
|
|
94
94
|
"rollup-plugin-dts": "6.4.1",
|
|
95
95
|
"rollup-plugin-peer-deps-external": "2.2.4",
|
|
96
96
|
"rollup-plugin-preserve-directives": "0.4.0",
|
|
@@ -98,11 +98,11 @@
|
|
|
98
98
|
"swr": "2.4.1",
|
|
99
99
|
"ts-jest": "29.4.9",
|
|
100
100
|
"ts-node": "10.9.2",
|
|
101
|
-
"typescript": "6.0.
|
|
101
|
+
"typescript": "6.0.3",
|
|
102
102
|
"whatwg-fetch": "3.6.20"
|
|
103
103
|
},
|
|
104
104
|
"dependencies": {
|
|
105
|
-
"@auth0/nextjs-auth0": "4.
|
|
105
|
+
"@auth0/nextjs-auth0": "4.19.0",
|
|
106
106
|
"@smg-automotive/api-client-pkg": "4.6.0",
|
|
107
107
|
"@smg-automotive/i18n-pkg": "3.2.0",
|
|
108
108
|
"debug": "4.4.3",
|