redirect fixed

This commit is contained in:
2026-01-21 22:24:42 +00:00
parent c10f71b2db
commit e66c7dfb89

View File

@@ -1,16 +1,28 @@
import urlJoin from "url-join";
export default defineEventHandler(async (event) => {
const session = await getUserSession(event)
const path = event.node.req.url
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, "/login", 302);
return sendRedirect(event, urlJoin(base_url,"/login"), 302);
else if (path?.startsWith("/login"))
// @ts-ignore
if (session.secure?.user_id)
return sendRedirect(event, "/", 302);
return sendRedirect(event, urlJoin(base_url,"/"), 302);
return;