Supabase Apple Login auf Android
Einen Setup-Vorschlag mit den Installationsanweisungen und der vollständigen Markdown-Guideline für diesen Plugin kopieren.
Voraussetzungen
Abschnitt mit dem Titel „Voraussetzungen“Diese Anleitung hilft Ihnen dabei, Apple Sign-In mit Supabase-Authentifizierung auf Android zu integrieren. Es wird davon ausgegangen, dass Sie bereits folgende Schritte abgeschlossen haben:
Schritt 1: Bereitstellung des Backend-Edge-Funktions
Abschnitt mit dem Titel „Schritt 1: Bereitstellung des Backend-Edge-Funktions“Zuerst müssen wir die Supabase Edge-Funktion bereitstellen, die den Apple OAuth-Rückruf bearbeiten wird.
-
Navigieren Sie zu Ihrem Supabase-Projektverzeichnis
Terminalfenster cd your-project/supabase -
Erstellen Sie die Edge-Funktion (wenn sie nicht existiert)
Terminalfenster supabase functions new apple-signin-callback -
Kopieren Sie die Edge-Funktion code
Die vollständige Implementierung der Edge-Funktion ist im Beispiel-App.
Kopieren Sie die folgenden Dateien in Ihr Projekt:
supabase/functions/apple-signin-callback/index.ts- Haupt-Edge-Funktion codesupabase/functions/apple-signin-callback/deno.json- Importkarte für Abhängigkeiten (enthältjose- Bibliothek für JWT-Signierung)
-
- JWT-Verifizierung konfigurieren
- Der Apple OAuth-Callback-Endpunkt muss öffentlich sein (keine Authentifizierung erforderlich), weil Apple ihn umleitet. Aktualisieren Sie Ihr
supabase/config.toml- Datei:[functions.apple-signin-callback]enabled = trueverify_jwt = false # Important: Set to false for public OAuth callbackimport_map = "./functions/apple-signin-callback/deno.json"entrypoint = "./functions/apple-signin-callback/index.ts" -
- Terminalfenster
- Wichtig supabase functions deploy apple-signin-callback -
Ermitteln Sie Ihre Funktion-URL
Nach der Bereitstellung erhalten Sie eine URL wie:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callbackWenn Sie sie nicht finden können, können Sie Folgendes tun:
- Öffnen
https://supabase.com/dashboard/project/YOUR_PROJECT_REF/functions - Klicken Sie auf die
apple-signin-callbackFunktion-URL, um sie zu kopieren.
- Öffnen
Schritt 2: Konfiguriere das Apple-Entwicklerportal
Überschrift: Schritt 2: Konfiguriere das Apple-EntwicklerportalKonfigurieren wir nun das Apple-Entwicklerportal mit der Backend-URL und sammeln alle erforderlichen Werte.
-
Folgen Sie der Anleitung zum Einrichten von Apple Login für Android
Abschließen Sie das Apple Login Android-Einrichtungsleitfaden zum:
- Erstellen Sie einen Dienst-ID
- Generieren Sie einen privaten Schlüssel (.p8-Datei)
- Erhalten Sie Ihre Team-ID und Schlüssel-ID
- Konfigurieren Sie die Rückruf-URL
-
Setzen Sie die Rückruf-URL im Apple-Entwicklerportal
Wenn Sie die Rückruf-URL im Apple-Entwicklerportal (Schritt 6.9 der Apple-Anleitung) konfigurieren, verwenden Sie Ihre Supabase Edge-Funktion-URL:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callbackWichtig: Verwenden Sie die Supabase Edge-Funktion-URL
Verwenden Sie NICHT die Rückruf-URL aus der Apple-Login-Android-Einrichtungsanleitung. Diese Anleitung verwendet eine benutzerdefinierte Backend-Server-URL. Für die Supabase-Integration müssen Sie müssen stattdessen Ihre Supabase Edge-Funktion-URL verwenden.
-
Sammeln Sie alle erforderlichen Werte
Nachdem Sie das Apple-Einrichtungshandbuch abgeschlossen haben, sollten Sie folgende Werte haben:
- APPLE_TEAM_ID: Ihre Apple-Entwickler-Team-ID
- APPLE_KEY_ID: Die Schlüssel-ID vom Apple-Entwickler-Portal
- APPLE_PRIVATE_KEY: Ihre .p8-Privatschlüsseldatei (muss bas64-codiert werden)
- ANDROID_SERVICE_ID: Ihre Apple-Dienst-ID (z.B.,
com.example.app.service) - BASE_REDIRECT_URL: Ihre tiefen Verweis-URL (z.B.,
capgo-demo-app://path)
Schritt 3: Supabase-Schlüssel setzen
Abschnitt mit dem Titel “Schritt 3: Supabase-Schlüssel setzen”Jetzt müssen wir die Umgebungsvariablen (Geheimnisse) für die Supabase Edge-Funktion konfigurieren.
-
Verschlüsseln Sie Ihren privaten Schlüssel
Zuerst verschlüsseln Sie Ihren Apple-privaten Schlüssel (.p8-Datei) in Base64:
Terminal-Fenster base64 -i AuthKey_XXXXX.p8Kopieren Sie den gesamten Ausgang (es ist ein einzelner langer String).
-
Geheimnisse mithilfe von Supabase CLI setzen
Terminal-Fenster supabase secrets set APPLE_TEAM_ID=your_team_idsupabase secrets set APPLE_KEY_ID=your_key_idsupabase secrets set APPLE_PRIVATE_KEY=your_base64_encoded_keysupabase secrets set ANDROID_SERVICE_ID=your.service.idsupabase secrets set BASE_REDIRECT_URL=your-app://pathsupabase secrets set APPLE_REDIRECT_URI=https://your-project-ref.supabase.co/functions/v1/apple-signin-callback -
Alternative: Gehe gehe zu den Geheimnissen in der Supabase-Dashboard
Wenn Sie das Dashboard bevorzugen:
- Gehe zu Ihrem Supabase-Projekt-Dashboard
- Navigiere zu Edge-Funktionen → Einstellungen → Geheimnisse
- Fügen Sie jedem Geheimnisvariable seinen Wert hinzu
Sektion mit dem Titel "Schritt 4: Verwenden Sie den Authentifizierungs-Helfer"
Schritt 4: Verwenden Sie den Authentifizierungs-HelferNow können Sie den Authentifizierungs-Helfer in Ihrer App code verwenden.
Implementierung
Sektion: ImplementierungDie vollständige Implementierung ist im Beispiel-App- supabaseAuthUtils.ts Datei verfügbar.
Verwendung des Authentifizierungs-Helfers
Sektion: Verwendung des Authentifizierungs-Helfersimport { authenticateWithAppleSupabase } from './supabaseAuthUtils';
const result = await authenticateWithAppleSupabase();if (result.success) { console.log('Signed in:', result.user); // Navigate to your authenticated area} else { console.error('Error:', result.error);}Update der Hilfsfunktion
Sektion: Update der HilfsfunktionWenn Sie den authenticateWithAppleSupabase Wenn Sie eine Hilfsfunktion benötigen, müssen Sie Sie müssen Die folgenden Werte müssen Ihren Konfiguration entsprechen:
-
aktualisieren
redirectUrl- Setzen Sie dies auf Ihre Supabase Edge-Funktion-URL:const redirectUrl = platform === 'android'? 'https://your-project-ref.supabase.co/functions/v1/apple-signin-callback': undefined; -
aktualisieren
clientId- Setzen Sie dies auf Ihren Apple-Dienst-Id:await SocialLogin.initialize({apple: {clientId: isIOS? undefined // iOS uses bundle ID automatically: 'your.service.id.here', // Your Apple Service ID for AndroidredirectUrl: redirectUrl,},});
Siehe das Vollständige Implementierung als Referenz.
Schritt 5: Testen Sie die Integration
Abschnitt mit dem Titel „Schritt 5: Testen Sie die Integration“-
Erstellen und ausführen Sie Ihre Android-App
Terminal-Fenster npx cap sync androidnpx cap run android -
Testen Sie den Authentifizierungsfluss
- Tippen Sie auf die Schaltfläche „Mit Apple anmelden“
- Sie sollten das Apple OAuth-Fenster im Browser sehen
- Nach der Authentifizierung sollten Sie wieder in Ihre App zurückgeleitet werden
- Überprüfen Sie die Konsole auf Fehler
-
Überprüfen Sie den Ablauf
Der vollständige Ablauf sollte wie folgt sein:
- Der Benutzer tippt auf “Mit Apple anmelden”
- Die App öffnet einen Browser mit Apple OAuth
- Der Benutzer authentifiziert sich bei Apple
- Apple leitet zu:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callback - Die Edge-Funktion tauscht code gegen Token aus
- Die Edge-Funktion leitet zu:
your-app://path?id_token=...&access_token=... - Die Android-App erhält den tiefen Link und verarbeitet den Identitäts-Token
- Die App meldet sich bei Supabase mit dem Identitäts-Token an
Schwierigkeiten beheben
Abschnitt mit dem Titel "Schwierigkeiten beheben"Wenn die Anmeldung fehlschlägt:
- URI-Mismatch: Überprüfen Sie, ob die Rückruf-URL im Apple-Entwicklerportal genau mit
APPLE_REDIRECT_URIGeheimnis - Deep-Link nicht funktioniert: Überprüfen Sie, ob
AndroidManifest.xmlFilter für die Absicht stimmen mit IhremBASE_REDIRECT_URL - Geheime Schlüssel fehlen: Überprüfen Sie, ob alle Geheimnisse korrekt eingestellt sind, indem Sie
supabase secrets list - Tokenaustausch fehlschlägt: Überprüfe die Edge-Funktion-Protokolle im Supabase-Dashboard für detaillierte Fehlermeldungen
- Die App erhält keine Callbacks: Stelle sicher, dass
onNewIntentkorrekt implementiert ist in MainActivity - Die Beispielanwendung code zur Referenz
Wie es funktioniert
Abschnitt mit dem Titel „Wie es funktioniert“Bei Android-Anwendungen verwendet Apple Sign-In einen OAuth-Redirect-Flow:
- Initialisierung : Die Erweiterung wird mit Ihrem Service-ID und dem Backend-Redirect-URL initialisiert
- OAuth-Flow : Öffnet einen Browser/Chrome-Custom-Tab mit Apple's OAuth-Seite
- Hintergrund-Callback : Apple leitet zu Ihrer Supabase Edge-Funktion mit einer Autorisierung code um
- Token-Austausch : Die Edge-Funktion tauscht den code gegen Token mit Apple's Token-Endpunkt aus
- Tiefer-Link-Redirect : Die Edge-Funktion leitet den Benutzer zurück in Ihre App mit dem Identitäts-Token
- Supabase-Authentifizierung : Die App erhält den Token und meldet sich bei Supabase an
Diese Fluss ist notwendig, da Apple keine native Android-Unterstützung für Sign in with Apple bietet.
Weitermachen mit Supabase Apple Login auf Android
Abschnitt mit dem Titel “Weitermachen mit Supabase Apple Login auf Android”Wenn Sie Supabase Apple Login auf Android zur Planung der Authentifizierung und der Kontoflows verwenden, verbinden Sie es mit Mit @capgo/capacitor-social-login für die native Fähigkeit in Mit @capgo/capacitor-social-login für die Implementierungsdetail in @capgo/capacitor-social-login für die Implementierungsdetail in @capgo/capacitor-passkey für die Implementierungsdetail in @capgo/capacitor-passkey für die Implementierungsdetail in @capgo/capacitor-native-biometric für die Implementierungsdetail in @capgo/capacitor-native-biometric für die Implementierungsdetails in @capgo/capacitor-native-biometric, und Zweifaktor-Authentifizierung für die Implementierungsdetails in Zweifaktor-Authentifizierung.