32 lines
693 B
Plaintext
32 lines
693 B
Plaintext
---
|
|
import Layout from "#layouts/Layout.astro";
|
|
import { decodeToken } from "#lib/auth/token";
|
|
import { TokenType } from "#lib/auth/types";
|
|
import { prisma } from "#lib/server/prisma";
|
|
|
|
const token = Astro.url.searchParams.get("t");
|
|
|
|
if (!token) {
|
|
return Astro.redirect("/")
|
|
}
|
|
|
|
const payload = decodeToken(token)
|
|
|
|
if (payload.typ !== TokenType.Verify || !payload.uid || !payload.exp || payload.exp < Date.now()) {
|
|
return Astro.redirect("/")
|
|
}
|
|
|
|
await prisma.benutzer.update({
|
|
where: {
|
|
uid: payload.uid
|
|
},
|
|
data: {
|
|
verified: true
|
|
}
|
|
})
|
|
---
|
|
|
|
<Layout title="Bestätigung">
|
|
<h1>Vielen Dank</h1>
|
|
<p>Ihre Email Adresse wurde bestätigt, sie können diese Seite nun schließen.</p>
|
|
</Layout> |