Supabase-Authentifizierung mit supabase-js v2

Supabase-Auth-Anleitung

Supabase-Authentifizierung: E-Mail, Magic Link, OAuth, RLS | We.Inc

Funktionierender supabase-js-v2-Code für E-Mail und Passwort, Magic Links, OAuth-Anmeldung, Session-Listener und Abmelden, dazu Row-Level-Security-Policies, die auth.uid() nutzen.

Supabase Auth meldet Menschen mit E-Mail und Passwort, einmaligen Magic Links, Telefoncodes oder OAuth-Anbietern wie GitHub an, alles über das Objekt supabase.auth in supabase-js. Jede Anmeldung erzeugt eine Session, deren Token deine Datenbank erreicht, wo Row-Level-Security-Policies auth.uid() mit einer user_id-Spalte vergleichen, um zu entscheiden, was diese Person lesen darf.

Anmeldemethoden und der passende Aufruf

Auth ist der Teil eines Supabase-Projekts, der am häufigsten falsch verdrahtet wird: Die Anmeldung funktioniert, aber die Daten stehen weit offen, oder der Server vertraut einem Cookie, dem er nicht vertrauen sollte. Wähle unten eine Methode, um ihren Code zu erhalten, und folge dann dem Abschnitt zu Policies, damit jede Person nur ihre eigenen Zeilen sieht.

Häufige Fragen

Ist ein Supabase Magic Link dasselbe wie OTP?

Beide starten mit signInWithOtp. Bei E-Mail enthält die Nachricht einen Link, wenn die Vorlage die Bestätigungs-URL nutzt, und einen Code, wenn sie das Token nutzt. Die Anmeldung per Telefon unterstützt nur Codes, per SMS oder WhatsApp.

Wie füge ich die Anmeldung mit Google oder GitHub hinzu?

Aktiviere den Anbieter im Dashboard mit Client-ID und Secret dieses Anbieters und ruf dann signInWithOAuth mit seinem Namen und optional einer redirectTo-Adresse auf. Die Person kehrt bereits angemeldet auf deine Website zurück.

Wie erfahre ich, wann sich ein Nutzer an- oder abmeldet?

Registriere onAuthStateChange. Es meldet Ereignisse wie INITIAL_SESSION, SIGNED_IN, SIGNED_OUT, TOKEN_REFRESHED, USER_UPDATED und PASSWORD_RECOVERY und gibt ein Abonnement zurück, das du beim Unmount der Komponente kündigst.

Warum sehen angemeldete Nutzer nichts mehr, seit ich RLS aktiviert habe?

Sobald Row Level Security aktiv ist, verweigert eine Tabelle alles, bis eine Policy es erlaubt. Füge eine select-Policy für die Rolle authenticated hinzu, die (select auth.uid()) mit der Besitzerspalte vergleicht.

Soll ich Supabase Auth oder Firebase Auth nutzen?

Beide decken die gängigen Methoden ab. Der größere Unterschied ist die Datenbank darunter; unser Vergleich Supabase vs Firebase geht diese Entscheidung im Detail durch.

Sessions und Tokens

Row Level Security ist das echte Schloss

Policies mit auth.uid()

Jede Person liest und schreibt nur ihre eigenen Notizen

Im SQL-Editor ausführen. Der Standardwert füllt user_id aus dem Token, und with check verhindert, dass jemand Zeilen für einen anderen Nutzer einfügt.

E-Mail und Passwort

Konto anlegen, dann anmelden. Bei aktiver Bestätigung ist data.session null, bis der Link in der E-Mail angeklickt wird.

Magic Link

Sendet eine E-Mail, deren Link die Person anmeldet und auf die Redirect-Adresse führt.

OAuth (GitHub)

Leitet zum Anbieter und zurück. Aktiviere zuerst den Anbieter und hinterlege seine Keys im Dashboard.

Session-Listener und Abmelden

Hält die Oberfläche im Einklang mit der Session und räumt den Listener auf, wenn du fertig bist.

Code für jede Anmeldemethode

Anmeldemethode wählen

Kostenlos starten · Keine Kreditkarte nötig

Verwandt: Ratgeber

Produkt

Für wen

Funktionen

Ressourcen

Unternehmen

Sitemap