Supabase Apple Login auf Android
Ein Setup-Vorschlag mit den Installations-Schritten und der vollständigen Markdown-Guide für diesen Plugin kopieren.
Voraussetzungen
Abschnitt mit dem Titel „Voraussetzungen“Diese Anleitung hilft Ihnen dabei, Apple Sign-In mit Supabase Authentication auf Android zu integrieren. Es wird angenommen, dass Sie bereits folgende Schritte abgeschlossen haben:
Schritt 1: Deployen Sie die Backend-Edge-Funktion
Abschnitt mit dem Titel „Schritt 1: Deployen Sie die Backend-Edge-Funktion“Zunächst müssen wir die Supabase Edge-Funktion bereitstellen, die 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 Terminal-Fenster
Zur Zwischenablage kopieren supabase functions new apple-signin-callback -
Copy the edge function 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 (enthältjoseBibliothek für JWT-Verschlüsselung)
-
Konfigurieren Sie die JWT-Verifizierung
Die Apple-OAuth-Rückrufendpunkt muss öffentlich sein (keine Authentifizierung erforderlich), da Apple zu ihm umleiten wird. Aktualisieren Sie Ihr
supabase/config.tomlAuf die Zwischenablage kopieren[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
In die Zwischenablage kopieren supabase functions deploy apple-signin-callback -
Nach der Bereitstellung erhalten Sie eine URL wie:
In die Zwischenablage kopieren
https://your-project-ref.supabase.co/functions/v1/apple-signin-callbackÖffnen
- Klicken Sie auf
https://supabase.com/dashboard/project/YOUR_PROJECT_REF/functions - Funktion-URL, um sie in die Zwischenablage zu kopieren.
apple-signin-callbackWenn Sie sie nicht finden können, können Sie Folgendes tun: Öffnen
- Klicken Sie auf
Schritt 2: Apple Developer Portal konfigurieren
Abschnitt: Schritt 2: Apple Developer Portal konfigurierenWir müssen nun das Apple Developer Portal mit der Backend-URL konfigurieren und alle erforderlichen Werte abrufen.
-
Beachten Sie die Apple Login Android-Einrichtungsanleitung
Abschließen Apple Login Android Einrichtungsanleitung zu:
- Erstellen Sie einen Dienst-IDs
- Erstellen Sie eine private Schlüssel (Datei .p8)
- Holen Sie sich Ihren Team-IDs und Key-IDs
- Konfigurieren Sie die Rückruf-URL
-
Setzen Sie die Rückruf-URL im Apple-Entwickler-Portal
Wenn Sie die Rückruf-URL im Apple-Entwickler-Portal (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
Nicht verwenden Verwenden Sie NICHT die Umleitungs-URL von der Apple Login Android Einrichtungsanleitung. Diese Anleitung verwendet eine benutzerdefinierte Backend-Server-URL. Für die Supabase-Integration müssen Sie stattdessen Ihre Supabase Edge-Funktion-URL verwenden. Genauer Match erforderlich Genauer Match erforderlich
-
Exact Match Required
The Return URL must match exactly what you configure here. Apple is very strict about redirect URI matching.
- Collect all required values: Ihre Apple-Entwickler-Team-ID
- APPLE_KEY_ID: Die Schlüssel-ID aus dem Apple-Entwickler-Portal
- APPLE_PRIVATE_KEY: Ihr .p8-Privatschlüssel-Datei (muss base64-codiert sein)
- 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: Setzen Sie Supabase-Secrets
Abschnitt mit dem Titel “Schritt 3: Setzen Sie Supabase-Secrets”Wir müssen nun die Umgebungsvariablen (Geheimnisse) für die Supabase Edge-Funktion konfigurieren.
-
Codieren Sie Ihr privates Schlüssel
Zunächst codieren Sie Ihr Apple-Schlüssel (.p8-Datei) in Base64:
Terminalfenster base64 -i AuthKey_XXXXX.p8Kopieren Sie die gesamte Ausgabe (es ist eine einzelne lange Zeichenfolge).
-
Geheime Werte mithilfe von Supabase CLI setzen
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: Geheime Werte in Supabase-Dashboard setzen
Wenn Sie das Dashboard bevorzugen:
- Gehen Sie zu Ihrem Supabase-Projekt-Dashboard
- Navigieren Sie zu Edge Funktionen → Einstellungen → Geheimnisse
- Fügen Sie jeder geheimen Variablen mit ihrem Wert hinzu
Schritt 4: Verwenden Sie den Authentifizierungs-Helfer
Abschnitt mit dem Titel “Schritt 4: Verwenden Sie den Authentifizungs-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-Apps- supabaseAuthUtils.ts Datei.
Verwendung des Authentifizierungs-Helfers
Abschnitt mit dem Titel “Verwendung des Authentifizierungs-Helfers”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);}Aktualisieren Sie die Hilfsfunktion
Abschnitt mit dem Titel „Aktualisieren Sie die Hilfsfunktion“Wenn Sie die authenticateWithAppleSupabase Hilfsfunktion verwenden, müssen Sie müssen die folgenden Werte an Ihre Konfiguration anpassen:
-
Aktualisieren
redirectUrl- Setzen Sie diesen 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 diesen auf Ihren 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,},});
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-
__CAPGO_KEEP_0__
Terminalfenster npx cap sync androidnpx cap run android -
Den Authentifizierungsfluss testen
- Tippen Sie auf das Schaltfeld „Mit Apple anmelden“
- Sie sollten das Apple OAuth-Fenster in einem 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 Fluss
Der vollständige Fluss sollte sein:
- Benutzer tippt auf „Mit Apple anmelden“
- App öffnet 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 ersetzt code durch Token
- 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
Fehlerbehebung
Abschnitt mit dem Titel „Fehlerbehebung“Wenn die Anmeldung fehlschlägt:
- Ursache: URI für die Weiterleitung passt nicht: Überprüfe die Rückruf-URL im Apple Developer Portal, ob sie genau mit
APPLE_REDIRECT_URIGeheimnis - Tiefenlink funktioniert nicht: Überprüfen Sie, ob
AndroidManifest.xmlintent filter IhrenBASE_REDIRECT_URL - Fehlende Geheimnisse: Überprüfen Sie, ob alle Geheimnisse korrekt eingestellt sind, indem Sie
supabase secrets list - Tokenaustausch fehlschlägt: Überprüfen Sie die Edge-Function-Protokolle im Supabase-Dashboard für detaillierte Fehlermeldungen
- Die App erhält keine Callbacks: Stellen Sie sicher, dass
onNewIntentkorrekt in der MainActivity implementiert ist - Die Beispiel-App code zur Referenz
Wie es funktioniert
Abschnitt mit dem Titel „Wie es funktioniert“Bei Android nutzt Apple Sign-In einen OAuth-Redirect-Flow:
- Initialisierung: Die Erweiterung wird mit Ihrem Service-ID und Ihrem Backend-Redirect-URL initialisiert
- OAuth-Flow: Öffnet einen Browser/Chrome-Custom-Tab mit der Apple-OAuth-Seite
- Rückruf am Backend: Apple leitet zu Ihrer Supabase Edge-Funktion mit einer Autorisierung code um
- Token-Austausch: Die Edge-Funktion austauscht code gegen Token mithilfe der Apple-Token-Endpunkt
- Tiefe-Link-Redirect: Die Edge-Funktion leitet den Benutzer zurück zu Ihrer App mit dem Identitäts-Token
- Supabase-Authentifizierung: Die App erhält das 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.