Supabase Apple Login auf Android
Eine Einrichtungsvorlage mit den Installationsanweisungen und der vollständigen Markdown-Guideline für diesen Plugin kopieren.
Voraussetzungen
Abschnitt mit dem Titel “Voraussetzungen”Diese Anleitung hilft Ihnen, Apple Sign-In mit Supabase Authentication 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 das Supabase Edge-Funktion bereitstellen, das den Apple OAuth-Rückruf bearbeiten wird.
-
Navigieren Sie zu Ihrem Supabase-Projekt-Verzeichnis
Terminal-Fenster cd your-project/supabase -
Erstellen Sie die Edge-Funktion (wenn es nicht existiert)
Terminal-Fenster 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- Importmap für Abhängigkeiten (einschließlich Bibliothek für JWT-Signierung)joseKonfigurieren Sie die JWT-Verifizierung
-
Die Apple OAuth-Callback-Endpunkt muss öffentlich sein (keine Authentifizierung erforderlich), weil Apple zu ihm umleitet. Aktualisieren Sie Ihren
Zu Clipboard kopieren
supabase/config.tomlWichtig[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" -
Deploy the function
Terminalfenster supabase functions deploy apple-signin-callback -
Ermittle deine Funktion-URL
Nach der Bereitstellung erhältst du eine URL wie:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callbackWenn du sie nicht findest, kannst du Folgendes tun:
- Öffne
https://supabase.com/dashboard/project/YOUR_PROJECT_REF/functions - Klicke auf die
apple-signin-callbackFunktion-URL, um sie zu kopieren.
- Öffne
Schritt 2: Konfigurieren Sie das Apple Developer Portal
Abschnitt mit dem Titel „Schritt 2: Konfigurieren Sie das Apple Developer Portal“Wir müssen nun das Apple Developer Portal mit der Backend-URL konfigurieren und alle erforderlichen Werte abrufen.
-
Beachten Sie die Anleitung zum Einrichten von Apple Login für Android
Abschließen Sie das Apple Login Android-Einrichtungshandbuch zu:
- Erstellen Sie einen Dienst-IDs
- Eine private Schlüsseldatei (.p8 Datei) generieren
- Ihre Team-ID und Key-ID erhalten
- Die Rückruf-URL konfigurieren
-
Die Rückruf-URL im Apple-Entwickler-Portal einstellen
Wenn Sie die Rückruf-URL im Apple-Entwickler-Portal (Schritt 6.9 der Apple-Anleitung) konfigurieren, verwenden Sie bitte Ihre Supabase Edge-Funktion-URL:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callbackWichtig: Verwenden Sie die Supabase Edge-Funktion-URL
Nicht verwenden die Umleitungs-URL aus der Apple Login Android-EinrichtungsanleitungDiese Anleitung verwendet eine benutzerdefinierte Backend-Server-URL. Für die Supabase-Integration müssen Sie eine Supabase Edge-Funktion-URL verwenden benutzen Sie stattdessen Ihre Supabase Edge Function URL.
-
Alle erforderlichen Werte sammeln
Nach Abschluss der Apple-Einrichtungsanleitung sollten Sie 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 base64-codiert werden)
- ANDROID_SERVICE_ID: Ihr Apple-Dienst-ID (z.B.,
com.example.app.service) - BASE_REDIRECT_URL: Ihre tiefen Verweis-URL (z.B.,
capgo-demo-app://path)
Schritt 3: Setzen Sie Supabase-Secrets
Abschnitt mit dem Titel “Schritt 3: Setzen Sie Supabase-Secrets”Jetzt müssen wir die Umgebungsvariablen (Geheimnisse) für die Supabase Edge-Funktion konfigurieren.
-
Verschlüsseln Sie Ihr privates Schlüssel
Zuerst verschlüsseln Sie Ihr Apple-privates Schlüssel (.p8-Datei) in base64:
Terminal-Fenster base64 -i AuthKey_XXXXX.p8Kopieren Sie den gesamten Ausgang (es ist ein einzelner langer String).
-
Setzen Sie Geheimnisse mithilfe von Supabase CLI
Terminalfenster 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 Supabase-Dashboard
Wenn Sie das Dashboard bevorzugen:
- Gehe zu deinem Supabase-Projekt-Dashboard
- Navigiere zu Edge-Funktionen → Einstellungen → Geheimnisse
- Fügen Sie jede geheime Variable mit ihrem Wert hinzu
Sie können nun den Authentifizierungshelfer in Ihrer App code verwenden.
Implementierung
Abschnitt mit dem Titel „Implementierung“Die vollständige Implementierung ist im Beispiel-Apps- supabaseAuthUtils.ts Datei verfügbar.
Verwendung des Authentifizierungshelfers
Abschnitt mit dem Titel „Verwendung des Authentifizierungshelfers“import { 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);}Die Hilfsfunktion aktualisieren
Abschnitt mit dem Titel „Die Hilfsfunktion aktualisieren“Wenn Sie die authenticateWithAppleSupabase Hilfsfunktion verwenden, müssen Sie müssen aktualisieren
-
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 Ihre 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,},});
komplette Implementierung für Referenz. Schritt 5: Testen der Integration
Abschnitt mit dem Titel “Schritt 5: Testen der Integration”
Erstellen und ausführen Sie Ihre Android-App-
Terminalfenster
In die Zwischenablage kopieren npx cap sync androidnpx cap run android -
__CAPGO_KEEP_0__
- Tippen Sie auf den Button „Mit Apple anmelden“
- Sie sollten die Apple OAuth-Seite in einem Browser sehen
- Nach der Authentifizierung sollten Sie zurück in Ihre App weitergeleitet werden
- Überprüfen Sie die Konsole auf Fehler
-
Überprüfen Sie den Ablauf
Der vollständige Ablauf sollte 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=... - 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”Wenn die Anmeldung fehlschlägt:
- URI des Redirects passt nicht überein: Überprüfe, dass die Rückkehr-URL im Apple-Entwicklerportal genau mit
APPLE_REDIRECT_URIgeheim - Tiefenlink funktioniert nicht: Überprüfe, dass
AndroidManifest.xmlintent-Filter mit deinemBASE_REDIRECT_URL - Fehlende Geheimnisse: Überprüfen Sie, ob alle Geheimnisse korrekt eingestellt sind
supabase secrets list - Token exchange fails: Überprüfen Sie die Edge-Funktion-Protokolle im Supabase-Dashboard für detaillierte Fehlermeldungen
- App erhält keine Callback: Stellen Sie sicher, dass
onNewIntentkorrekt in MainActivity implementiert ist - Review the Beispiel-App code zur Referenz
Wie es funktioniert
Abschnitt mit dem Titel „Wie es funktioniert“On Android, Apple Sign-In verwendet einen OAuth-Redirect-Flow:
- Initialisierung: Die Erweiterung wird mit Ihrem Service-ID und Backend-Redirect-URL initialisiert
- OAuth-Flow: Öffnet einen Browser/Chrome Custom Tab mit Apples OAuth-Seite
- Backend-Rückruf: Apple leitet zu Ihrer Supabase Edge-Funktion mit einer Autorisierung code weiter
- Token-Austausch: Die Edge-Funktion austauscht den code gegen Token mit Apples Token-Endpunkt
- Tiefenlink-Redirect: Die Edge-Funktion leitet zurück zu Ihrer App mit dem Identitäts-Token
- Supabase-Authentifizierung: Die 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 bereitstellt.
Weitermachen Sie von Supabase Apple Login auf Android.
Abschnitt mit dem Titel “Weitermachen Sie von Supabase Apple Login auf Android”.Wenn Sie Supabase Apple Login auf Android für die Planung der Authentifizierung und Kontoflows verwenden, 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-biometrische für die Implementierungsdetails in @capgo/capacitor-native-biometrische, und Zwei-Faktor-Authentifizierung für die Implementierungsdetails in Zwei-Faktor-Authentifizierung.