import { headers } from "next/headers"; import { PasskeyVerwaltung } from "@/components/auth/PasskeyVerwaltung"; import { ContentHeader } from "@/components/layout/ContentHeader"; import { oeffentlicheBasis } from "@/lib/adresse"; import { prisma } from "@/lib/db"; import { sitzungErforderlich } from "@/server/auth/sitzungspflicht"; import { passkeysMoeglich } from "@/server/auth/passkeys"; import { einstellungen } from "@/server/einstellungen"; export const metadata = { title: "Meine Passkeys" }; export const dynamic = "force-dynamic"; export default async function PasskeySeite() { const ich = await sitzungErforderlich(); const { dashboardUrl } = await einstellungen(); const [passkeys, kopfzeilen] = await Promise.all([ prisma.passkey.findMany({ where: { benutzerId: ich.benutzerId }, orderBy: { erstelltAm: "desc" }, select: { id: true, bezeichnung: true, erstelltAm: true, zuletztAm: true }, }), headers(), ]); // Die Seite kennt die Anfrage nur über die Kopfzeilen; daraus entsteht dieselbe Adresse, // die auch die Passkey-Endpunkte verwenden. const basis = oeffentlicheBasis(new Request("http://platzhalter.invalid", { headers: kopfzeilen }), dashboardUrl); return ( <>
); }