Refactor auth middleware (#1279)

- Switch to TypeScript
- Use early return
- Switch to regular for loop

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
This commit is contained in:
Sasha Sorokin
2024-07-11 21:02:00 +02:00
committed by GitHub
parent aecbc714c4
commit ce4250281f
2 changed files with 35 additions and 35 deletions

View File

@@ -1,35 +0,0 @@
const whitelistedParams = ["flow", "error"];
export default defineNuxtRouteMiddleware(async (_to, from) => {
const config = useRuntimeConfig();
const auth = await useAuth();
if (!auth.value.user) {
const fullPath = from.fullPath;
const url = new URL(fullPath, config.public.apiBaseUrl);
const extractedParams = whitelistedParams.reduce((acc, param) => {
if (url.searchParams.has(param)) {
acc[param] = url.searchParams.get(param);
url.searchParams.delete(param);
}
return acc;
}, {});
const redirectPath = encodeURIComponent(url.pathname + url.search);
return await navigateTo(
{
path: "/auth/sign-in",
query: {
redirect: redirectPath,
...extractedParams,
},
},
{
replace: true,
},
);
}
});

View File

@@ -0,0 +1,35 @@
const whitelistedParams = ["flow", "error"];
export default defineNuxtRouteMiddleware(async (_to, from) => {
const config = useRuntimeConfig();
const auth = await useAuth();
if (auth.value.user) return;
const fullPath = from.fullPath;
const url = new URL(fullPath, config.public.apiBaseUrl);
const extractedParams = Object.create(null) as Record<string, string>;
for (const param of whitelistedParams) {
const val = url.searchParams.get(param);
if (val != null) {
extractedParams[param] = val;
url.searchParams.delete(param);
}
}
const redirect = encodeURIComponent(url.pathname + url.search);
return await navigateTo(
{
path: "/auth/sign-in",
query: {
redirect,
...extractedParams,
},
},
{ replace: true },
);
});