Supabase Apple Login auf Android
Ein Setup-Vorschlag kopieren, der die Installationsanweisungen und die vollständige Markdown-Anleitung für diesen Plugin enthält.
Voraussetzungen
Abschnitt mit dem Titel “Voraussetzungen”Diese Anleitung hilft Ihnen, Apple Sign-In mit Supabase-Authentifizierung auf Android zu integrieren. Es wird angenommen, dass Sie bereits folgende Schritte abgeschlossen haben:
Schritt 1: Bereitstellung der Backend Edge Funktion
Schritt 1: Deployen Sie den Backend-Edge-FunctionZuerst müssen wir die Supabase Edge-Funktion bereitstellen, die den Apple OAuth-Antwortaufruf bearbeiten wird.
-
Navigiere zu deinem Supabase-Projektverzeichnis
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 im Beispiel-App.
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 die Signierung von JWT)
-
JWT-Verifizierung konfigurieren)
Die Apple-OAuth-Rückrufendpunkt muss öffentlich sein (keine Authentifizierung erforderlich), da Apple zu ihm umleitet. Aktualisieren Sie Ihren
supabase/config.tomlDatei:[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 die Funktion
Bereitstellen der Funktion) supabase functions deploy apple-signin-callback -
Erhalten 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: Konfigurieren Sie das Apple-Entwickler-Portal
Abschnitt mit dem Titel “Schritt 2: Konfigurieren Sie das Apple-Entwicklerportal”Wir müssen nun die Apple Developer Portal mit der Backend-URL konfigurieren und alle erforderlichen Werte erhalten.
-
Beachten Sie die Apple-Login-Android-Einrichtungsanleitung
Führen Sie die Apple Login Android Einrichtungsanleitung aus:
- Erstellen Sie einen Dienst-ID
- Generate a private key (.p8 file)
- Holen Sie sich Ihren Team-ID und Schlüssel-ID
- Konfigurieren Sie die Rückruf-URL
-
Setzen Sie die Rückruf-URL im Apple-Entwicklerportal
Bei der Konfiguration der Rückruf-URL im Apple Developer Portal (Schritt 6.9 der Apple-Anleitung) 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
Tun NICHT 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 must benutzen Sie stattdessen Ihre Supabase Edge Function-URL.
-
Alle erforderlichen Werte sammeln
Nach Abschluss der Apple-Einrichtungsanleitung sollten Sie folgende Werte haben:
- APPLE_TEAM_ID: Ihre Apple-Entwickler-Team-ID
- APPLE_KEY_ID: Die Schlüssel-ID aus dem Apple-Entwicklerportal
- APPLE_PRIVATE_KEYIhr .p8-Privatschlüssel-Datei (muss base64-codiert sein)
- Dienstleistungs-ID für Android: Ihre Apple-Dienst-ID (z.B.,
com.example.app.service) - BASE_REDIRECT_URL: Ihre tiefen Verknüpfungs-URL (z.B.,
capgo-demo-app://path)
Schritt 3: Supabase-Schlüssel setzen
Schritt 3: Supabase-Schlüssel setzenWir müssen nun die Umgebungsvariablen (Geheimnisse) für die Supabase Edge-Funktion konfigurieren.
-
Verschlüsseln Sie Ihren privaten Schlüssel
Erstens müssen Sie Ihren Apple-privaten Schlüssel (.p8-Datei) in Base64 kodieren:
Terminal-Fenster base64 -i AuthKey_XXXXX.p8Kopieren Sie die gesamte Ausgabe (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: Legen Sie Geheimnisse in der Supabase-Dashboard
Wenn Sie das Dashboard bevorzugen:
- Gehen Sie zu Ihrem Supabase-Projekt-Dashboard
- Navigieren Sie zu Edge-Funktionen → Einstellungen → Geheimnisse
- Fügen Sie jedem Geheimnisvariable seinen Wert hinzu
Schritt 4: Verwenden Sie den Authentifizierungs-Helfer
Schritt 4: Verwenden Sie den Authentifizierungs-HelferNun kannst du den Authentifizierungs-Helfer in deiner App verwenden code.
Implementierung
Abschnitt mit dem Titel „Implementierung”Die vollständige Implementierung ist im Beispiel-App- supabaseAuthUtils.ts file.
Mit der Authentifizierungshilfe
Abschnitt mit dem Titel „Mit der Authentifizierungshilfe”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 muss aktualisieren Sie die folgenden Werte, um sie Ihren Konfigurationen anzupassen:
-
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-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
Schritt 5: Die Integration testen-
Bauen und ausführen Sie Ihre Android-App
Terminal Fenster npx cap sync androidnpx cap run android -
Prüfe die Authentifizierungsablauf
- Tippe auf den „Mit Apple anmelden“-Button
- Sie sollten die Apple OAuth-Seite im Browser sehen.
- Nach der Authentifizierung sollten Sie zurück zur App weitergeleitet 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 weiter zu:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callback - Die Edge-Funktion tauscht code gegen Token aus
- Die Edge-Funktion leitet weiter 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
Fehlertreiber
Abschnitt mit dem Titel "Fehlertreiber"Bei Fehlschlag der Authentifizierung:
- URI-Mismatch bei der Weiterleitung: Überprüfen Sie, ob die Rückruf-URL im Apple-Entwicklerportal genau mit
APPLE_REDIRECT_URIGeheimnis - Tiefe Verlinkung funktioniert nicht: Überprüfen Sie, ob
AndroidManifest.xmlFilter für die Absicht passt sich IhrenBASE_REDIRECT_URL - Geheimnisse fehlen: Verify all secrets are set correctly using
supabase secrets list - Tokenaustausch fehlschlägt: Überprüfen Sie die Protokoll-Einträge in der Supabase-Dashboard für detaillierte Fehlermeldungen
- App erhält keine Callback: Ensure
onNewIntentist in der MainActivity korrekt implementiert - Überprüfen Sie 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 Ihrer Service-ID und dem Backend-Redirect-URL initialisiert
- OAuth-Flow: Öffnet einen Browser/Chrome Custom Tab mit der Apple-OAuth-Seite
- Backend-Rückruf: Apple leitet zu Ihrer Supabase Edge-Funktion mit einer Autorisierung code weiter
- Token-Wechsel: Die Edge-Funktion wechselt den code für Token mit Apple’s Token-Endpunkt
- Tiefenlink-Rückruf: Die Edge-Funktion leitet zurück zu Ihrer App mit dem Identitäts-Token
- Supabase-Anmeldung: 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.
Fortsetzen Sie mit Supabase Apple Login on Android
Abschnitt mit dem Titel “Weitermachen mit Supabase Apple Login auf Android”Wenn Sie Live Update verwenden Supabase Apple Login auf Android" um Authentifizierung und Account-Flüsse zu planen, verbinden Sie es mit Verwenden Sie @capgo/capacitor-social-login für die native Fähigkeit in Verwenden Sie @capgo/capacitor-social-login, Verwenden Sie @capgo/capacitor-social-login für die Implementierungsdetails in @capgo/capacitor-social-login, Verwenden Sie @capgo/capacitor-passkey für die Implementierungsdetails in @capgo/capacitor-passkey, und Verwenden Sie @capgo/capacitor-native-biometric für die Implementierungsdetails in @capgo/capacitor-native-biometric. Zwei-Faktor-Authentifizierung Zur Implementierungsdetail in Zwei-Faktor-Authentifizierung.