46 lines
1003 B
Plaintext
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>
|