-- Aktive-Sitzungen-Verwaltung (IAM-12, siehe core-kanban/tickets/IAM-12.md). -- Bewusst SERVERSEITIG mit widerrufbarem Zustand — anders als IAM-02s -- zustandsloses JWT (API-05-Entscheidung fuer Modul-zu-Modul-Vertrauen), -- braucht die Selbstbedienungs-Sitzungsuebersicht einen Ort, an dem eine -- einzelne Sitzung sofort und nachweislich ungueltig gemacht werden kann. -- token_hash enthaelt NIEMALS den Klartext-Token, nur dessen SHA-256-Hash. CREATE TABLE sessions ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), user_id UUID NOT NULL REFERENCES users(id), token_hash BYTEA NOT NULL UNIQUE, device_info TEXT NOT NULL DEFAULT '', ip TEXT NOT NULL DEFAULT '', created_at TIMESTAMPTZ NOT NULL DEFAULT now(), last_seen_at TIMESTAMPTZ NOT NULL DEFAULT now(), revoked_at TIMESTAMPTZ ); CREATE INDEX sessions_user_idx ON sessions (user_id);