import type { Metadata } from 'next' import { KeyRound } from 'lucide-react' import { TokenVerwaltung } from '@/app/(app)/verwaltung/api/token-verwaltung' import { Card, CardBeschreibung, CardInhalt, CardKopf, CardTitel, } from '@/components/ui/card' import { rechteLesen } from '@/lib/api' import { alsDatumUhrzeit } from '@/lib/zeit' import { verlangeRolle } from '@/server/berechtigung' import { db } from '@/server/db' import { umgebung } from '@/server/umgebung' export const metadata: Metadata = { title: 'API-Tokens' } export default async function ApiSeite() { await verlangeRolle('ADMIN', '/verwaltung/api') const tokens = await db.apiToken.findMany({ // Gueltige zuerst, Zurueckgezogenes ans Ende: Was noch Zugang hat, ist // das, wonach man sucht. orderBy: [{ widerrufenAm: { sort: 'asc', nulls: 'first' } }, { erstelltAm: 'desc' }], select: { id: true, name: true, praefix: true, rechte: true, gueltigBis: true, letzteNutzung: true, widerrufenAm: true, erstelltAm: true, }, }) const adresse = umgebung().APP_URL return (

API-Tokens

Zugänge für fremde Anwendungen — mit so wenig Rechten wie möglich.

Tokens Ein Token ist ein Passwort. Er wird beim Anlegen ein einziges Mal angezeigt; danach liegt in der Datenbank nur noch sein Fingerabdruck. Wer ihn verliert, legt einen neuen an — nachschlagen lässt er sich nicht. ({ id: t.id, name: t.name, praefix: t.praefix, rechte: rechteLesen(t.rechte), gueltigBis: t.gueltigBis ? alsDatumUhrzeit(t.gueltigBis) : null, letzteNutzung: t.letzteNutzung ? alsDatumUhrzeit(t.letzteNutzung) : null, widerrufen: t.widerrufenAm !== null, erstelltAm: alsDatumUhrzeit(t.erstelltAm), }))} />
) }