Files
yt2mp3/server/middleware/redirects.ts
2026-01-21 22:24:42 +00:00

30 lines
887 B
TypeScript

import urlJoin from "url-join";
export default defineEventHandler(async (event) => {
const session = await getUserSession(event)
const conf = useRuntimeConfig(event)
const base_url = conf.app.baseURL
// normalize and remove base URL
function stripBaseUrl(fullPath: string) {
const base = base_url.replace(/\/+$/, '') // remove trailing slash
return fullPath.startsWith(base) ? fullPath.slice(base.length) || '/' : fullPath
}
let path = stripBaseUrl(event.node.req.url!)
if (path?.startsWith("/settings"))
// @ts-ignore
if (!session.secure?.user_id)
return sendRedirect(event, urlJoin(base_url,"/login"), 302);
else if (path?.startsWith("/login"))
// @ts-ignore
if (session.secure?.user_id)
return sendRedirect(event, urlJoin(base_url,"/"), 302);
return;
})