From 5ca59b205ee850b346bc07e022155f7ce3a436ea Mon Sep 17 00:00:00 2001 From: Pihkaal Date: Wed, 25 Mar 2026 16:04:40 +0100 Subject: [PATCH] feat: authentication --- .env.example | 2 + app/middleware/auth.ts | 7 ++ app/pages/auth/sign-in.vue | 59 +++++++++++++ app/pages/index.vue | 16 +++- nuxt.config.ts | 7 +- package.json | 1 + pnpm-lock.yaml | 142 +++++++++++++++++++++++++++++++ server/api/auth/sign-in.post.ts | 17 ++++ server/api/auth/sign-out.post.ts | 3 + server/env.ts | 2 + server/middleware/auth.ts | 7 ++ 11 files changed, 256 insertions(+), 7 deletions(-) create mode 100644 app/middleware/auth.ts create mode 100644 app/pages/auth/sign-in.vue create mode 100644 server/api/auth/sign-in.post.ts create mode 100644 server/api/auth/sign-out.post.ts create mode 100644 server/middleware/auth.ts diff --git a/.env.example b/.env.example index 45b33cf..befad80 100644 --- a/.env.example +++ b/.env.example @@ -1 +1,3 @@ DATABASE_URL=sqlite.db +ADMIN_USERNAME=admin +ADMIN_PASSWORD=strong_password diff --git a/app/middleware/auth.ts b/app/middleware/auth.ts new file mode 100644 index 0000000..626b339 --- /dev/null +++ b/app/middleware/auth.ts @@ -0,0 +1,7 @@ +export default defineNuxtRouteMiddleware(() => { + const { loggedIn } = useUserSession(); + + if (!loggedIn.value) { + return navigateTo("/auth/sign-in"); + } +}); diff --git a/app/pages/auth/sign-in.vue b/app/pages/auth/sign-in.vue new file mode 100644 index 0000000..b44f4a8 --- /dev/null +++ b/app/pages/auth/sign-in.vue @@ -0,0 +1,59 @@ + + + diff --git a/app/pages/index.vue b/app/pages/index.vue index c025254..e4d6177 100644 --- a/app/pages/index.vue +++ b/app/pages/index.vue @@ -1,12 +1,19 @@