redirect fixed
This commit is contained in:
@@ -1,16 +1,28 @@
|
|||||||
|
import urlJoin from "url-join";
|
||||||
|
|
||||||
export default defineEventHandler(async (event) => {
|
export default defineEventHandler(async (event) => {
|
||||||
const session = await getUserSession(event)
|
const session = await getUserSession(event)
|
||||||
|
const conf = useRuntimeConfig(event)
|
||||||
const path = event.node.req.url
|
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"))
|
if (path?.startsWith("/settings"))
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
if (!session.secure?.user_id)
|
if (!session.secure?.user_id)
|
||||||
return sendRedirect(event, "/login", 302);
|
return sendRedirect(event, urlJoin(base_url,"/login"), 302);
|
||||||
|
|
||||||
else if (path?.startsWith("/login"))
|
else if (path?.startsWith("/login"))
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
if (session.secure?.user_id)
|
if (session.secure?.user_id)
|
||||||
return sendRedirect(event, "/", 302);
|
return sendRedirect(event, urlJoin(base_url,"/"), 302);
|
||||||
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user