feat: implemented very simple login for testing
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
---
|
||||
import Layout from '../layouts/layout.astro'
|
||||
---
|
||||
|
||||
<Layout>
|
||||
<h1>Dashboard</h1>
|
||||
</Layout>
|
||||
+14
-1
@@ -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'
|
||||
}
|
||||
}
|
||||
}
|
||||
---
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
Reference in New Issue
Block a user