Florian Bouillon dc80dec6a8 feat: Add account pages
Signed-off-by: Florian BOUILLON <f.bouillon@aptatio.com>
2023-06-21 19:55:52 +02:00

46 lines
1003 B
Plaintext

---
import Layout from '../../layouts/Layout.astro'
import { hashPassword } from '../../libs/AuthUtils'
import DaoFactory from '../../models/DaoFactory'
let errorMessage: string | undefined
if (Astro.request.method === 'POST') {
const form = await Astro.request.formData()
const email = form.get('email') as string
const password = form.get('password') as string
const user = await DaoFactory.get('user').create({
email: email,
password: await hashPassword(password)
})
if (!user) {
errorMessage = 'User already exists'
return
}
DaoFactory.get('session').setSession({
userId: user.id
}, Astro.response)
}
---
<Layout title="Welcome to Astro.">
<main>
{errorMessage && (
<div>
{errorMessage}
</div>
)}
<form method="post">
<input type="email" name="email" id="email"/>
<input type="password" name="password" id="password" />
<input type="password" name="repeat-password" id="repeat-password">
<button>Register</button>
</form>
</main>
</Layout>