feat: implemented very simple login for testing

This commit is contained in:
2026-09-16 01:09:30 +02:00
parent 2f9cfd3f1a
commit 8de07c2c0d
8 changed files with 127 additions and 8 deletions
+7
View File
@@ -0,0 +1,7 @@
---
import Layout from '../layouts/layout.astro'
---
<Layout>
<h1>Dashboard</h1>
</Layout>
+14 -1
View File
@@ -1,11 +1,17 @@
---
import { backendSignIn } from '../backend/sign-in'
import LoginForm from '../islands/LoginForm.vue'
import Layout from '../layouts/layout.astro'
import { loginSchema } from '../schemas/login'
import { isLoggedIn, setAuthCookie } from '../utils/auth'
let email = ''
let error = ''
if (isLoggedIn(Astro.cookies)) {
return Astro.redirect('/dashboard', 303)
}
if (Astro.request.method === 'POST') {
const formData = await Astro.request.formData()
const input = {
@@ -20,7 +26,14 @@ if (Astro.request.method === 'POST') {
error = result.error.issues[0]?.message ?? 'Invalid form data.'
} else {
email = result.data.email
console.log('POST DATA', result.data)
const ok = await backendSignIn(email, input.password?.toString() ?? '')
if (ok) {
setAuthCookie(Astro.cookies)
return Astro.redirect('/dashboard', 303)
} else {
error = 'E-Mail or password wrong'
}
}
}
---
+7
View File
@@ -0,0 +1,7 @@
import type { APIRoute } from 'astro'
import { clearAuthCookie } from '../utils/auth'
export const POST: APIRoute = ({ cookies, redirect }) => {
clearAuthCookie(cookies)
return redirect('/sign-in', 303)
}