Moderation für Supabase-Apps
Limenia sperrt Nutzer direkt in Supabase Auth, sobald dein Team entschieden hat, und hebt Sperren wieder auf. Der Webhook an dein Backend bleibt für alles andere.
Sperren direkt in Supabase Auth
Der Connector ruft dafür die Auth-Admin-API deines Projekts auf. Nutzer löscht Limenia nie, damit eine Beschwerde eine Sperre jederzeit aufheben kann.
| Entscheidung | In Supabase Auth |
|---|---|
| Dauerhafte Sperre | Nutzer sperren (ban_duration 876000h) |
| Sperre auf Zeit | Sperren bis zum Ende, Supabase hebt sie selbst auf |
| Konto wiederherstellen, Ende einer Sperre | Sperre aufheben (ban_duration none) |
| Inhalt entfernen, verwarnen | Nichts, das läuft über den Webhook |
In vier Schritten verbunden
Alles passiert im Dashboard unter der App, Reiter Connectoren.
- Lege in Supabase einen eigenen Secret Key nur für Limenia an. Er beginnt mit sb_secret_.
- Trag die Projekt-URL ein, etwa https://<ref>.supabase.co. Eigene Domains und selbst gehostete Instanzen gehen auch.
- Hinterleg den Key und schalte den Connector ein. Der Key geht direkt in den Secret Manager und wird nie wieder angezeigt.
- Klick auf „Verbindung testen“. Limenia fragt dafür einen Nutzer ab, den es nicht gibt, und ändert nichts.
Ein Key, der nur eines tut
Ein Secret Key gibt in Supabase Zugriff auf das ganze Projekt. Limenia ruft damit nur zwei Endpunkte der Auth-Admin-API auf.
- Ein eigener Key nur für Limenia lässt sich in Supabase jederzeit einzeln löschen.
- Alte service_role-Keys nimmt Limenia nicht an.
- An Supabase gehen nur die Nutzer-UUID und die Sperrdauer. Die Antwort verwirft Limenia ungelesen.
- Jeder Aufruf läuft nur über https und nie an private oder interne Adressen.
Sitzungen und Tokens
Supabase kann Sitzungen nicht per Nutzer-ID beenden. Die Sperre greift sofort bei Anmeldung, Token-Refresh und Aufrufen an Supabase Auth. Ein schon ausgestelltes Access-Token gilt bis zu seinem Ablauf, im Standard bis zu einer Stunde.
- Prüf Nutzer im Backend mit getUser() statt getClaims(), wenn Sperren sofort greifen sollen, oder verkürz die Laufzeit der JWTs.
- Wähl für dein Projekt eine feste EU-Region, etwa Frankfurt (eu-central-1).
- Ein Beispiel mit Supabase Edge Functions liegt im Beispiel-Repo auf GitHub.
Warum braucht Limenia einen Secret Key?
Die Auth-Admin-API von Supabase nimmt nur Secret Keys an, Rechte je Bereich gibt es dort nicht. Deshalb empfehlen wir einen eigenen Key nur für Limenia, den du jederzeit einzeln widerrufen kannst.
Welche Nutzer-ID muss mein Backend schicken?
Die UUID des Nutzers in Supabase Auth, also auth.users.id oder den Claim sub im Access-Token. Limenia prüft das Format vor dem Senden.
Werden gesperrte Nutzer sofort abgemeldet?
Nein, das kann Supabase nicht per Nutzer-ID. Neue Anmeldungen und Token-Refreshs scheitern sofort, ein ausgestelltes Access-Token gilt bis zu seinem Ablauf. Mit getUser() im Backend greift die Sperre auch dort sofort.
Löscht Limenia Nutzer in Supabase?
Nein. Eine Löschung ließe sich nach einer erfolgreichen Beschwerde nicht rückgängig machen. Limenia sperrt und entsperrt nur.
Bereit für dein Meldeverfahren?
Wir zeigen dir Limenia an einem Beispiel und klären, was deine App für den DSA und die Stores braucht.
Oder direkt per E-Mail: [email protected]