From 23a07658c9ea047c34b079386780abce9848af41 Mon Sep 17 00:00:00 2001 From: k4rli Date: Thu, 31 Jul 2025 12:00:34 +0300 Subject: [PATCH] feat(MED-85): redirect to dashboard after MFA is done --- .../multi-factor-challenge-container.tsx | 2 +- .../features/medusa-storefront/src/middleware.ts | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/packages/features/auth/src/components/multi-factor-challenge-container.tsx b/packages/features/auth/src/components/multi-factor-challenge-container.tsx index fb6f930..17f30f4 100644 --- a/packages/features/auth/src/components/multi-factor-challenge-container.tsx +++ b/packages/features/auth/src/components/multi-factor-challenge-container.tsx @@ -47,7 +47,7 @@ export function MultiFactorChallengeContainer({ const verifyMFAChallenge = useVerifyMFAChallenge({ onSuccess: () => { - router.replace('/'); + router.replace(paths.redirectPath); }, }); diff --git a/packages/features/medusa-storefront/src/middleware.ts b/packages/features/medusa-storefront/src/middleware.ts index 21290da..0d59700 100644 --- a/packages/features/medusa-storefront/src/middleware.ts +++ b/packages/features/medusa-storefront/src/middleware.ts @@ -114,12 +114,23 @@ export async function middleware(request: NextRequest) { let cacheId = cacheIdCookie?.value || crypto.randomUUID(); - const regionMap = await getRegionMap(cacheId); + let regionMap; + try { + regionMap = await getRegionMap(cacheId); + } catch (error) { + console.error("Error fetching regions", error); + return { + redirect: { + destination: '/auth/sign-in', + permanent: false, + }, + }; + } const countryCode = regionMap && (await getCountryCode(request, regionMap)); const urlHasCountryCode = - countryCode && request.nextUrl.pathname.split("/")[1].includes(countryCode); + countryCode && request.nextUrl.pathname.split("/")[1]?.includes(countryCode); // if one of the country codes is in the url and the cache id is set, return next if (urlHasCountryCode && cacheIdCookie) {