Supabase Apple Login auf Android
Ein Setup-Prompt mit den Installations-Schritten und der vollständigen Markdown-Guideline für diesen Plugin kopieren.
Voraussetzungen
Abschnitt mit dem Titel „Voraussetzungen“Dieses Leitfaden hilft Ihnen dabei, Apple Sign-In mit Supabase-Authentifizierung auf Android zu integrieren. Es wird angenommen, 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 verarbeiten wird.
-
Navigieren Sie zu Ihrem Supabase-Projekt-Verzeichnis
Terminalfenster cd your-project/supabase -
Erstelle die Edge-Funktion (wenn sie nicht existiert)
Terminalfenster supabase functions new apple-signin-callback -
Kopiere die Edge-Funktion code
Die vollständige Implementierung der Edge-Funktion ist in der Beispiel-App verfügbar.
Kopiere die folgenden Dateien in dein Projekt:
supabase/functions/apple-signin-callback/index.ts- Haupt-Edge-Funktion codesupabase/functions/apple-signin-callback/deno.json- Importmap für Abhängigkeiten (enthältjoseBibliothek für JWT-Signierung)
-
Konfiguriere die JWT-Verifizierung
Die Apple OAuth-Callback-Endpunkt muss öffentlich sein (keine Authentifizierung erforderlich), weil Apple zu ihm umleitet. Aktualisieren Sie Ihren
supabase/config.tomlfile:[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" -
Die Funktion bereitstellen
Terminalfenster supabase functions deploy apple-signin-callback -
Die URL Ihrer Funktion erhalten
Nach der Bereitstellung erhalten Sie eine URL wie:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callbackWenn Sie es nicht finden, können Sie Folgendes tun:
- Öffnen
https://supabase.com/dashboard/project/YOUR_PROJECT_REF/functions - Klicken Sie auf den
apple-signin-callbackFunktion-URL, um ihn zu kopieren.
- Öffnen
Schritt 2: Konfigurieren Sie das Apple-Entwicklerportal
Abschnitt mit dem Titel „Schritt 2: Konfigurieren Sie das Apple-Entwicklerportal“Jetzt müssen wir das Apple-Entwicklerportal mit der Backend-URL und den erforderlichen Werten konfigurieren.
-
Beachten Sie die Apple Login Android-Einrichtungsanleitung
Abschließen Sie das Apple Login Android-Einrichtungsanleitung zu:
- Erstellen Sie eine Dienst-ID
- Generieren Sie einen privaten Schlüssel (.p8-Datei)
- Holen Sie sich Ihren Team- und Schlüssel-ID
- Konfigurieren Sie die Rückruf-URL
-
Setzen Sie die Rückruf-URL in Apple Developer Portal
Wenn Sie die Rückruf-URL in Apple Developer Portal (Schritt 6.9 der Apple-Anleitung) konfigurieren, verwenden Sie Ihre Supabase Edge Function-URL:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callbackWichtig: Verwenden Sie die Supabase Edge Function-URL
Nicht verwenden die Umleitungs-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 Function-URL verwenden.
-
Nach Abschluss der Apple-Einrichtungsanleitung sollten Sie folgende haben:
APPLE_TEAM_ID
- : Ihre Apple-Entwickler-Team-IDAPPLE_KEY_ID
- : Die Key-ID aus dem Apple-Entwickler-PortalAPPLE_PRIVATE_KEY
- : Ihr .p8-Privatschlüssel-Datei (muss base64-codiert werden)ANDROID_SERVICE_ID
- : Ihre Apple-Dienst-ID (z.B.__CAPGO_KEEP_0__
com.example.app.service) - BASE_REDIRECT_URLIhr Deep-Link-URL (z.B.
capgo-demo-app://path)
Schritt 3: Setzen Sie Supabase-Secrets
Abschnitt mit dem Titel “Schritt 3: Setze Supabase-Secrets”Zurzeit müssen wir die Umgebungsvariablen (Secrets) für die Supabase Edge-Funktion konfigurieren.
-
Verschlüsseln Sie Ihren privaten Schlüssel
Zuerst müssen Sie Ihren Apple-privaten Schlüssel (.p8-Datei) in Base64 kodieren:
Terminal-Fenster base64 -i AuthKey_XXXXX.p8Kopieren Sie den gesamten Ausgangstext (es ist ein einzelner langer String).
-
Setze Secrets mit Supabase CLI
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 -
Alternativ: Legen Sie Geheimnisse im Supabase-Dashboard fest
Wenn Sie das Dashboard bevorzugen:
- Gehe zu deinem Supabase-Projekt-Dashboard
- Navigiere zu Edge-Funktionen → Einstellungen → Geheimnisse
- Fügen Sie jedes Geheimnisvariable mit seinem Wert hinzu
Schritt 4: Verwenden Sie den Authentifizierungs-Helfer
Abschnitt mit dem Titel „Schritt 4: Verwenden Sie den Authentifizierungs-Helfer”Jetzt können Sie den Authentifizierungs-Helfer in Ihrer App code. verwenden.
Implementierung
Abschnitt mit dem Titel „Implementierung”Die vollständige Implementierung ist im Beispiel-App-Datei. supabaseAuthUtils.ts Mit der Authentifizierungshilfe
Abschnitt mit dem Titel „Mit der Authentifizierungshilfe“
Zur Zwischenablage kopierenimport { 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);}Abschnitt mit dem Titel „Aktualisieren Sie die Hilfsfunktion“
Wenn Sie dieHilfsfunktion verwenden, müssen Sie authenticateWithAppleSupabase die folgenden Werte an Ihre Konfiguration anpassen: __CAPGO_KEEP_0__ __CAPGO_KEEP_1__
-
Aktualisieren
redirectUrl- Setze dies auf deine Supabase Edge Function URL:const redirectUrl = platform === 'android'? 'https://your-project-ref.supabase.co/functions/v1/apple-signin-callback': undefined; -
Aktualisieren
clientId- Setze dies auf deine Apple Service 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 Zur Referenz.
Schritt 5: Testen der Integration
Abschnitt mit dem Titel “Schritt 5: Testen der Integration”-
Erstellen und ausführen Sie Ihre Android-App
Terminalfenster npx cap sync androidnpx cap run android -
Testen Sie den Authentifizierungsfluss
- Tippen Sie auf die Schaltfläche „Mit Apple anmelden“
- Sie sollten die Apple OAuth-Seite in einem Browser sehen
- Nach der Authentifizierung sollten Sie auf Ihre App zurückgeleitet werden
- Überprüfen Sie die Konsole auf Fehler
-
Überprüfen Sie den Ablauf
Der gesamte Ablauf sollte sein:
- Benutzer klickt auf „Mit Apple anmelden“
- Die App öffnet einen Browser mit Apple OAuth
- Benutzer authentifiziert sich bei Apple
- Apple leitet weiter zu:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callback - Edge-Funktion tauscht code gegen Token aus
- Edge-Funktion leitet weiter zu:
your-app://path?id_token=...&access_token=... - Android-App erhält den tiefen Link und verarbeitet den Identitäts-Token
- App meldet sich bei Supabase mit dem Identitäts-Token an
Fehlersuche
Abschnitt mit dem Titel „Fehlersuche“If Authentifizierung fehlschlägt:
- URI für die Weiterleitung passt nicht: Überprüfe die Rückruf-URL im Apple Developer Portal, ob sie genau mit
APPLE_REDIRECT_URI: __CAPGO_KEEP_0__ - Deep Link funktioniert nicht: Überprüfe, ob
AndroidManifest.xmlIntent-Filter passt sich deinerBASE_REDIRECT_URL - Fehlende Geheimnisse: Überprüfe, ob alle Geheimnisse korrekt gesetzt sind, indem du
supabase secrets list - Tokenaustausch fehlschlägt: Überprüfe die Edge-Function-Logs im Supabase-Dashboard für detaillierte Fehlermeldungen
- Die App erhält keine Callback-Funktion: Stelle sicher
onNewIntentist in MainActivity korrekt implementiert - Überprüfe das Beispiel-App code zur Referenz
Wie es funktioniert
Abschnitt mit dem Titel “Wie es funktioniert”Bei Android 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 der Apple-OAuth-Seite
- Hintergrund-CallbackApple leitet Sie zu Ihrer Supabase Edge-Funktion weiter mit einer Autorisierung code
- TokenaustauschDie Edge-Funktion austauscht den code gegen Token mithilfe des Tokenendpunkts von Apple
- Deep Link RedirectDie Edge-Funktion leitet Sie zurück zu Ihrer App mit dem Identitäts-Token
- Supabase-AuthentifizierungDie App erhält den Token und meldet sich bei Supabase an
Diese Fluss ist notwendig, weil Apple keine native Android-Unterstützung für Sign in with Apple bietet.
Weitermachen von Supabase Apple Login auf Android
Abschnitt mit dem Titel „Weitermachen von Supabase Apple Login auf Android“Wenn Sie Supabase Apple Login auf Android verwenden Apple-Login bei Supabase auf Android um die Authentifizierung und die Kontenflüsse zu planen, verbinden Sie es mit Mit @capgo/capacitor-social-login für die native Fähigkeit in Mit @capgo/capacitor-social-login, @capgo/capacitor-social-login für die Implementierungsdetails in @capgo/capacitor-social-login, @capgo/capacitor-passkey für die Implementierungsdetails in @capgo/capacitor-passkey, @capgo/capacitor-native-biometric für die Implementierungsdetails in @capgo/capacitor-native-biometric, und Zwei-Faktor-Authentifizierung für die Implementierungsdetails in Zwei-Faktor-Authentifizierung.