diff --git a/app/middleware/auth.ts b/app/middleware/auth.ts new file mode 100644 index 0000000..6a62b71 --- /dev/null +++ b/app/middleware/auth.ts @@ -0,0 +1,8 @@ +export default defineNuxtRouteMiddleware(async (to) => { + const fetch = useRequestFetch(); + try { + await fetch("/api/me", { credentials: "include" }); + } catch { + return navigateTo({ path: "/login", query: { redirect: to.fullPath } }); + } +}); diff --git a/app/middleware/guest.ts b/app/middleware/guest.ts new file mode 100644 index 0000000..7346c7b --- /dev/null +++ b/app/middleware/guest.ts @@ -0,0 +1,9 @@ +export default defineNuxtRouteMiddleware(async () => { + const fetch = useRequestFetch(); + try { + await fetch("/api/me", { credentials: "include" }); + return navigateTo("/me"); + } catch { + return; + } +}); diff --git a/app/pages/login.vue b/app/pages/login.vue new file mode 100644 index 0000000..5caecdc --- /dev/null +++ b/app/pages/login.vue @@ -0,0 +1,41 @@ + + + diff --git a/app/pages/me.vue b/app/pages/me.vue new file mode 100644 index 0000000..a8a556f --- /dev/null +++ b/app/pages/me.vue @@ -0,0 +1,81 @@ + + + diff --git a/app/pages/register.vue b/app/pages/register.vue new file mode 100644 index 0000000..51fc523 --- /dev/null +++ b/app/pages/register.vue @@ -0,0 +1,56 @@ + + +