redirect fixed
This commit is contained in:
@@ -1,16 +1,28 @@
|
||||
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!)
|
||||
|
||||
|
||||
const path = 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;
|
||||
|
||||
Reference in New Issue
Block a user