import { NextRequest, NextResponse } from 'next/server'; import { getSession } from '@/lib/session'; import { buildRegistrationOptions, finishRegistration } from '@/lib/webauthn'; // Optionen für die Registrierung eines neuen Passkeys (Session erforderlich). export async function GET() { const session = await getSession(); if (!session) return NextResponse.json({ error: 'Nicht angemeldet' }, { status: 401 }); try { return NextResponse.json(await buildRegistrationOptions()); } catch (error) { console.error('GET /api/passkey/register:', error); return NextResponse.json({ error: 'Serverfehler' }, { status: 500 }); } } // Verifiziert die Registrierungs-Antwort und speichert den Passkey. export async function POST(request: NextRequest) { const session = await getSession(); if (!session) return NextResponse.json({ error: 'Nicht angemeldet' }, { status: 401 }); try { const body = await request.json(); const result = await finishRegistration(body?.response, String(body?.label ?? '')); if (!result.ok) return NextResponse.json({ error: result.error }, { status: 400 }); return NextResponse.json({ ok: true }); } catch (error) { console.error('POST /api/passkey/register:', error); return NextResponse.json({ error: 'Serverfehler' }, { status: 500 }); } }