From 53c13156a2f377f0b27b20e2568d8e8071c17191 Mon Sep 17 00:00:00 2001 From: suricata Date: Mon, 8 Dec 2025 13:27:42 +0000 Subject: [PATCH] added login backend --- app/pages/login.vue | 35 +++++++++++++++++++++++++++++++++++ server/api/login.post.ts | 25 +++++++++++++++++++++++++ server/api/register.post.ts | 9 +++++++++ 3 files changed, 69 insertions(+) create mode 100644 app/pages/login.vue create mode 100644 server/api/login.post.ts create mode 100644 server/api/register.post.ts diff --git a/app/pages/login.vue b/app/pages/login.vue new file mode 100644 index 0000000..bf558f2 --- /dev/null +++ b/app/pages/login.vue @@ -0,0 +1,35 @@ + + + + + \ No newline at end of file diff --git a/server/api/login.post.ts b/server/api/login.post.ts new file mode 100644 index 0000000..849d3d7 --- /dev/null +++ b/server/api/login.post.ts @@ -0,0 +1,25 @@ +import { z } from 'zod' + +const bodySchema = z.object({ + email: z.string().email(), + password: z.string(), +}) + +export default defineEventHandler(async (event) => { + const { email, password } = await readValidatedBody(event, bodySchema.parse) + + if (email === 'admin@admin.com' && password === 'iamtheadmin') { + // set the user session in the cookie + // this server util is auto-imported by the auth-utils module + await setUserSession(event, { + user: { + name: 'John Doe', + }, + }) + return {} + } + throw createError({ + statusCode: 401, + message: 'Bad credentials', + }) +}) diff --git a/server/api/register.post.ts b/server/api/register.post.ts new file mode 100644 index 0000000..19aff0b --- /dev/null +++ b/server/api/register.post.ts @@ -0,0 +1,9 @@ +import { z } from 'zod' + +const bodyPost = z.object({ + email: z.string().email(), + first_name: z.string(), + last_name: z.string(), + pwd: z.string() +}) +