@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.
Files changed (34) hide show
  1. package/dist/{Auth-CJU-jY1w.d.ts → Auth-lfX7CuuS.d.ts} +1 -1
  2. package/dist/cjs/config/auth0.js +3 -0
  3. package/dist/cjs/config/auth0.js.map +1 -1
  4. package/dist/cjs/fixtures/authConfig.js +1 -0
  5. package/dist/cjs/fixtures/authConfig.js.map +1 -1
  6. package/dist/cjs/server/helpers/authRedirects.js +40 -0
  7. package/dist/cjs/server/helpers/authRedirects.js.map +1 -0
  8. package/dist/cjs/server/helpers/sellerCookies.js +33 -0
  9. package/dist/cjs/server/helpers/sellerCookies.js.map +1 -0
  10. package/dist/cjs/server/hooks/onCallbackFactory.js +34 -71
  11. package/dist/cjs/server/hooks/onCallbackFactory.js.map +1 -1
  12. package/dist/cjs/server/middleware/index.js +14 -1
  13. package/dist/cjs/server/middleware/index.js.map +1 -1
  14. package/dist/cjs/server/middleware/postLoginRefresh.js +95 -0
  15. package/dist/cjs/server/middleware/postLoginRefresh.js.map +1 -0
  16. package/dist/esm/config/auth0.js +3 -0
  17. package/dist/esm/config/auth0.js.map +1 -1
  18. package/dist/esm/fixtures/authConfig.js +1 -0
  19. package/dist/esm/fixtures/authConfig.js.map +1 -1
  20. package/dist/esm/server/helpers/authRedirects.js +35 -0
  21. package/dist/esm/server/helpers/authRedirects.js.map +1 -0
  22. package/dist/esm/server/helpers/sellerCookies.js +31 -0
  23. package/dist/esm/server/helpers/sellerCookies.js.map +1 -0
  24. package/dist/esm/server/hooks/onCallbackFactory.js +32 -69
  25. package/dist/esm/server/hooks/onCallbackFactory.js.map +1 -1
  26. package/dist/esm/server/middleware/index.js +14 -1
  27. package/dist/esm/server/middleware/index.js.map +1 -1
  28. package/dist/esm/server/middleware/postLoginRefresh.js +93 -0
  29. package/dist/esm/server/middleware/postLoginRefresh.js.map +1 -0
  30. package/dist/fixtures.d.ts +1 -1
  31. package/dist/index.d.ts +3 -3
  32. package/dist/server.d.ts +2 -2
  33. package/dist/{sessionUser-qBgR12pF.d.ts → sessionUser-sPuqul_E.d.ts} +1 -0
  34. 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-qBgR12pF.js';
2
+ import { A as Auth0Config, E as EnrichedSessionUser } from './sessionUser-sPuqul_E.js';
3
3
 
4
4
  type AuthProviderProps = {
5
5
  auth0Config: Auth0Config;
@@ -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 errors = require('@auth0/nextjs-auth0/errors');
7
- var getSelectedSellerId = require('../../lib/getSelectedSellerId.js');
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 getLocaleFromContext = ({ returnTo }, appBaseUrl) => {
11
- if (!returnTo) {
12
- return '';
13
- }
14
- try {
15
- const url = new URL(returnTo, appBaseUrl);
16
- return (url.searchParams.get('locale') || url.pathname.split('/')[1]) ?? '';
17
- }
18
- catch (parsingError) {
19
- // eslint-disable-next-line no-console
20
- console.warn('[Auth-package] Failed to parse locale from returnTo', parsingError);
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, localeFromUrl, onError, }) => {
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
- // eslint-disable-next-line no-console
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
- const errorCodeQuery = extractedErrorCode
53
- ? `?code=${extractedErrorCode}`
54
- : '';
55
- return server.NextResponse.redirect(new URL(`/${locale}${auth0Config.globalAuthErrorPath}${errorCodeQuery}`, appBaseUrl));
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
- localeFromUrl,
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
- return handleAuth0Error({
75
- error: new errors.AccessTokenError(incompleteTokenErrorCode, incompleteTokenErrorCode, new errors.OAuth2Error({
76
- code: incompleteTokenErrorCode,
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
- response.cookies.set(auth0Config.selectedSellerIdCookie.name, String(selectedSellerId), auth0Config.selectedSellerIdCookie);
102
- if (impersonatedSellerIdFromToken) {
103
- response.cookies.set(auth0Config.impersonatedSellerIdCookie.name, String(impersonatedSellerIdFromToken), auth0Config.impersonatedSellerIdCookie);
104
- }
105
- else {
106
- response.cookies.set(auth0Config.impersonatedSellerIdCookie.name, '', {
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","cookies","decodeJwt","AccessTokenError","OAuth2Error","getSelectedSellerId"],"mappings":"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"}
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":"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"}
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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"}
@@ -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 { AccessTokenError, OAuth2Error } from '@auth0/nextjs-auth0/errors';
5
- import { getSelectedSellerId } from '../../lib/getSelectedSellerId.js';
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 getLocaleFromContext = ({ returnTo }, appBaseUrl) => {
9
- if (!returnTo) {
10
- return '';
11
- }
12
- try {
13
- const url = new URL(returnTo, appBaseUrl);
14
- return (url.searchParams.get('locale') || url.pathname.split('/')[1]) ?? '';
15
- }
16
- catch (parsingError) {
17
- // eslint-disable-next-line no-console
18
- console.warn('[Auth-package] Failed to parse locale from returnTo', parsingError);
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, localeFromUrl, onError, }) => {
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
- // eslint-disable-next-line no-console
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
- const errorCodeQuery = extractedErrorCode
51
- ? `?code=${extractedErrorCode}`
52
- : '';
53
- return NextResponse.redirect(new URL(`/${locale}${auth0Config.globalAuthErrorPath}${errorCodeQuery}`, appBaseUrl));
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
- localeFromUrl,
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
- return handleAuth0Error({
73
- error: new AccessTokenError(incompleteTokenErrorCode, incompleteTokenErrorCode, new OAuth2Error({
74
- code: incompleteTokenErrorCode,
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
- response.cookies.set(auth0Config.selectedSellerIdCookie.name, String(selectedSellerId), auth0Config.selectedSellerIdCookie);
100
- if (impersonatedSellerIdFromToken) {
101
- response.cookies.set(auth0Config.impersonatedSellerIdCookie.name, String(impersonatedSellerIdFromToken), auth0Config.impersonatedSellerIdCookie);
102
- }
103
- else {
104
- response.cookies.set(auth0Config.impersonatedSellerIdCookie.name, '', {
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":"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"}
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":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/server/middleware/index.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;AAsBA,MAAM,GAAG,GAAG,KAAK,CAAC,iCAAiC,CAAC;AAEpD,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAE,WAAwB,KAAI;AACjE,IAAA,MAAM,EACJ,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,wBAAwB,EACxB,mBAAmB,EACnB,aAAa,GACd,GAAG,WAAW;IAEf,OAAO;QACL,aAAa;QACb,cAAc;QACd,gBAAgB;QAChB,wBAAwB;QACxB,mBAAmB;QACnB,aAAa;AACd,KAAA,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACtB,CAAC;MAEY,cAAc,GAAG,OAAO,EACnC,OAAO,EACP,gBAAgB,EAChB,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,KAAK,GASN,KAA2B;AAC1B,IAAA,MAAM,SAAS,GAAG,oBAAoB,CAAC,OAAO,CAAC;IAE/C,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO;IACpD,GAAG,CAAC,oBAAoB,EAAE;QACxB,SAAS;QACT,QAAQ;QACR,IAAI;QACJ,QAAQ;QACR,MAAM,EAAE,OAAO,CAAC,MAAM;AACvB,KAAA,CAAC;IAEF,MAAM,aAAa,GAAG,gBAAgB,CAAC;QACrC,IAAI;QACJ,QAAQ;AACT,KAAA,CAAC;AAEF,IAAA,MAAM,WAAW,GAAG,cAAc,EAAE;IAEpC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,mBAAmB,CAAC;IAC3E,GAAG,CAAC,kBAAkB,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAElE,MAAM,uBAAuB,GAAG,uBAAuB,CAAC;QACtD,IAAI;QACJ,QAAQ;QACR,OAAO;QACP,WAAW;AACZ,KAAA,CAAC;IACF,IAAI,uBAAuB,EAAE;QAC3B,uBAAuB,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,CAAC;AAC/D,QAAA,GAAG,CAAC,2CAA2C,EAAE,EAAE,SAAS,EAAE,CAAC;AAC/D,QAAA,OAAO,uBAAuB;IAChC;;AAGA,IAAA,cAAc,CAAC;QACb,OAAO;QACP,WAAW;AACZ,KAAA,CAAC;AAEF,IAAA,MAAM,kBAAkB,GAAG,MAAM,yBAAyB,CAAC;QACzD,OAAO;QACP,WAAW;QACX,aAAa;AACd,KAAA,CAAC;IACF,IAAI,kBAAkB,EAAE;AACtB,QAAA,GAAG,CAAC,+BAA+B,EAAE,EAAE,SAAS,EAAE,CAAC;AACnD,QAAA,OAAO,kBAAkB;IAC3B;;AAGA,IAAA,MAAM,wBAAwB,GAAG,MAAM,wBAAwB,CAAC;QAC9D,OAAO;AACP,QAAA,QAAQ,EAAE,YAAY,CAAC,IAAI,EAAE;QAC7B,aAAa;QACb,WAAW;QACX,OAAO;AACR,KAAA,CAAC;IACF,IAAI,wBAAwB,EAAE;AAC5B,QAAA,GAAG,CAAC,8BAA8B,EAAE,EAAE,SAAS,EAAE,CAAC;AAClD,QAAA,OAAO,wBAAwB;IACjC;;AAGA,IAAA,MAAM,uBAAuB,GAAG,MAAM,iBAAiB,CAAC;QACtD,OAAO;AACP,QAAA,QAAQ,EAAE,YAAY,CAAC,IAAI,EAAE;QAC7B,aAAa;QACb,WAAW;QACX,KAAK;AACN,KAAA,CAAC;IACF,IAAI,uBAAuB,EAAE;AAC3B,QAAA,GAAG,CAAC,8BAA8B,EAAE,EAAE,SAAS,EAAE,CAAC;AAClD,QAAA,OAAO,uBAAuB;IAChC;;AAGA,IAAA,MAAM,sBAAsB,GAAG,MAAM,6BAA6B,CAAC;QACjE,OAAO;QACP,aAAa;QACb,WAAW;QACX,OAAO;AACR,KAAA,CAAC;IACF,IAAI,sBAAsB,EAAE;AAC1B,QAAA,GAAG,CAAC,oCAAoC,EAAE,EAAE,SAAS,EAAE,CAAC;AACxD,QAAA,OAAO,sBAAsB;IAC/B;;AAGA,IAAA,IAAI,YAAY;AAChB,IAAA,IAAI;AACF,QAAA,GAAG,CAAC,0BAA0B,EAAE,EAAE,SAAS,EAAE,CAAC;QAC9C,YAAY,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC;QACtD,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,CAAC;QACpD,GAAG,CAAC,4BAA4B,EAAE;YAChC,SAAS;YACT,MAAM,EAAE,YAAY,CAAC,MAAM;AAC5B,SAAA,CAAC;IACJ;IAAE,OAAO,KAAK,EAAE;;QAEd,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAEtE,QAAA,IAAI,gBAAgB,CAAC,QAAQ,CAAC,EAAE;YAC9B,GAAG,CAAC,wDAAwD,EAAE;gBAC5D,SAAS;AACV,aAAA,CAAC;YACF,OAAO,YAAY,CAAC,QAAQ,CAC1B,IAAI,GAAG,CACL,YAAY,CAAC;AACX,gBAAA,QAAQ,EAAE,CAAA,EAAG,QAAQ,CAAA,EAAG,MAAM,CAAA,CAAE;gBAChC,QAAQ;gBACR,WAAW;AACZ,aAAA,CAAC,EACF,MAAM,CACP,CACF;QACH;AAEA,QAAA,GAAG,CAAC,4CAA4C,EAAE,EAAE,SAAS,EAAE,CAAC;AAChE,QAAA,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE;AACpC,QAAA,MAAM,cAAc,GAAG;AACrB,YAAA,WAAW,CAAC,iBAAiB;YAC7B,CAAA,EAAG,WAAW,CAAC,iBAAiB,CAAA,GAAA,CAAK;YACrC,CAAA,EAAG,WAAW,CAAC,iBAAiB,CAAA,GAAA,CAAK;SACtC;AACD,QAAA,cAAc,CAAC,OAAO,CAAC,CAAC,UAAU,KAAI;YACpC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,EAAE;AACnC,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,IAAI,EAAE,GAAG;AACV,aAAA,CAAC;AACJ,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,QAAQ;IACjB;;AAGA,IAAA,2BAA2B,CAAC;QAC1B,IAAI;QACJ,OAAO;AACP,QAAA,QAAQ,EAAE,YAAY;QACtB,WAAW;AACZ,KAAA,CAAC;IAEF,IAAI,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,IAAI,gBAAgB,EAAE;AAC1D,QAAA,GAAG,CAAC,gCAAgC,EAAE,EAAE,SAAS,EAAE,CAAC;AACpD,QAAA,OAAO,YAAY;IACrB;;AAGA,IAAA,MAAM,YAAY,GAAG,MAAM,oCAAoC,CAAC;QAC9D,OAAO;QACP,QAAQ;QACR,aAAa;QACb,WAAW;AACX,QAAA,QAAQ,EAAE,YAAY;AACvB,KAAA,CAAC;IACF,IAAI,YAAY,EAAE;AAChB,QAAA,OAAO,YAAY;IACrB;;IAGA,MAAM,WAAW,GAAG,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,QAAQ,CAAC;IACnE,GAAG,CAAC,wBAAwB,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;AACnE,IAAA,MAAM,kBAAkB,GAAG,MAAM,YAAY,CAAC;QAC5C,WAAW;QACX,aAAa;QACb,WAAW;QACX,QAAQ;QACR,OAAO;AACP,QAAA,QAAQ,EAAE,YAAY;QACtB,OAAO;AACR,KAAA,CAAC;IACF,IAAI,kBAAkB,EAAE;QACtB,GAAG,CAAC,0BAA0B,EAAE;YAC9B,SAAS;AACT,YAAA,UAAU,EAAE,kBAAkB,CAAC,MAAM,KAAK,GAAG;AAC9C,SAAA,CAAC;AACF,QAAA,OAAO,kBAAkB;IAC3B;AAEA,IAAA,GAAG,CAAC,sCAAsC,EAAE,EAAE,SAAS,EAAE,CAAC;IAC1D,MAAM,aAAa,GAAG,cAAc,CAAC;AACnC,QAAA,kBAAkB,EAAE,YAAY,CAAC,IAAI,CAAC;AACpC,YAAA,OAAO,EAAE;gBACP,OAAO,EAAE,OAAO,CAAC,OAAO;AACzB,aAAA;SACF,CAAC;QACF,YAAY;AACb,KAAA,CAAC;IACF,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,CAAC;;IAGrD,IAAI,QAAQ,GAAG,WAAW;AAC1B,IAAA,IAAI;QACF,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC;QACvD,QAAQ,GAAG,OAAO,EAAE,IAAI,EAAE,QAAQ,IAAI,WAAW;IACnD;AAAE,IAAA,MAAM;;QAEN,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,EAAE,SAAS,EAAE,CAAC;IACpE;IACA,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,QAAQ,CAAC;AAErD,IAAA,OAAO,aAAa;AACtB;;;;"}
@@ -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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"}
@@ -1,4 +1,4 @@
1
- import { A as Auth0Config, E as EnrichedSessionUser, a as Entitlements } from './sessionUser-qBgR12pF.js';
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-CJU-jY1w.js';
2
- import { N as NonEmptyArray, M as MfaEnrollmentType, b as MfaEnrollmentTicket, A as Auth0Config, E as EnrichedSessionUser } from './sessionUser-qBgR12pF.js';
3
- export { c as Auth0User, d as Auth0UserType, e as AuthSessionData, I as IncompleteSessionUser, S as SessionInfo, f as SessionUser } from './sessionUser-qBgR12pF.js';
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-CJU-jY1w.js';
4
- import { f as SessionUser, S as SessionInfo } from './sessionUser-qBgR12pF.js';
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
 
@@ -15,6 +15,7 @@ type Auth0Config = {
15
15
  logoutEndpoint: string;
16
16
  tokenEndpoint: string;
17
17
  callbackEndpoint: string;
18
+ postLoginRefreshEndpoint: string;
18
19
  userProfileEndpoint: string;
19
20
  switchTenantEndpoint: string;
20
21
  selectedSellerIdCookie: CookieOptions;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smg-automotive/auth",
3
- "version": "9.1.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.1",
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.0",
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.1",
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.2",
101
+ "typescript": "6.0.3",
102
102
  "whatwg-fetch": "3.6.20"
103
103
  },
104
104
  "dependencies": {
105
- "@auth0/nextjs-auth0": "4.18.0",
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",