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() +}) +