--- import Admin from '../../layouts/Admin.astro'; import { getDb } from '../../lib/db'; import { login, getSessionUser, landingFor, SESSION_COOKIE } from '../../lib/auth'; export const prerender = false; let error = ''; if (Astro.request.method === 'POST') { const form = await Astro.request.formData(); const token = login(getDb(), String(form.get('username') ?? ''), String(form.get('password') ?? '')); if (token) { Astro.cookies.set(SESSION_COOKIE, token, { httpOnly: true, sameSite: 'lax', path: '/', secure: import.meta.env.PROD, maxAge: 7 * 24 * 3600, }); // Ogni ruolo atterra sulla sua sezione: campus fuori dal pannello, gli // altri sulla pagina admin che possono effettivamente aprire. return Astro.redirect(landingFor(getSessionUser(getDb(), token)?.role ?? 'user')); } error = 'Credenziali non valide.'; } ---

Accesso

{error &&

{error}

}