Supabase Apple Login auf Android
Kopieren Sie einen Einrichtungsprompt mit den Installationsanweisungen und der vollständigen Markdown-Guide für diesen Plugin.
Voraussetzungen
Abschnitt mit dem Titel „Voraussetzungen“This guide will help you integrate Apple Sign-In with Supabase Authentication on Android. It is assumed that you have already completed:
Schritt 1: Deployen Sie die Backend-Edge-Funktion
Abschnitt mit dem Titel “Schritt 1: Deployen Sie die Backend-Edge-Funktion”Zuerst müssen wir die Supabase Edge-Funktion bereitstellen, die den Apple OAuth-Rückruf verarbeiten wird.
-
Navigieren Sie zu Ihrem Supabase-Projekt-Verzeichnis
Terminal-Fenster cd your-project/supabase -
Erstelle die Edge-Funktion (wenn sie nicht existiert)
Terminal-Fenster supabase functions new apple-signin-callback -
Kopiere die Edge-Funktion code
Die vollständige Implementierung der Edge-Funktion ist im 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), 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" -
Führen Sie die Funktion aus
Terminalfenster supabase functions deploy apple-signin-callback -
Holen Sie sich die URL Ihrer Funktion
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, können Sie Folgendes tun:
- Öffnen
https://supabase.com/dashboard/project/YOUR_PROJECT_REF/functions - Klicken Sie auf den
apple-signin-callbackFunktion-URL, um sie 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 konfigurieren und alle erforderlichen Werte abrufen.
-
Folgen Sie der 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) einrichten, 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 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-Funktion-URL verwenden.
-
Nach Abschluss der Apple-Einrichtungsanleitung sollten Sie haben:
APPLE_TEAM_ID
- : Ihre Apple-Entwickler-Team-IDAPPLE_KEY_ID
- : Die Schlüssel-ID vom Apple-Entwickler-PortalAPPLE_PRIVATE_KEY
- : Ihr .p8-Privatschlüssel-Datei (muss base64-codiert werden)ANDROID_SERVICE_ID
- : Ihre Apple-Dienst-ID (z.B.Collect all required values
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”Wir müssen nun die Umgebungsvariablen (Secrets) für die Supabase Edge-Funktion konfigurieren.
-
Verschlüssle Deinen privaten Schlüssel
Erstens verschlüssle Deinen Apple-privaten Schlüssel (.p8-Datei) in base64:
Terminal-Fenster base64 -i AuthKey_XXXXX.p8Kopiere die gesamte Ausgabe (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 in der Supabase-Dashboard-Oberfläche fest.
Wenn Sie die Oberfläche bevorzugen:
- Gehen Sie zu Ihrem Supabase-Projekt-Dashboard.
- Navigieren Sie zu Edge-Funktionen → Einstellungen → Geheimnisse
- Fügen Sie jeder Geheimnisvariable mit ihrem Wert hinzu.
Schritt 4: Verwenden Sie den Authentifizierungs-Helfer
Sektion mit dem Titel “Schritt 4: Verwenden Sie den Authentifizierungs-Helfer”Jetzt können Sie den Authentifizierungs-Helfer in Ihrer App code verwenden.
Implementierung
Sektion mit dem Titel “Implementierung”The vollständige Implementierung ist in der Beispiel-App’s supabaseAuthUtils.ts Datei verfügbar.
Mithilfe der Authentifizierungshilfe
Abschnitt mit dem Titel “Mithilfe 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, müssen Sie die folgenden Werte an Ihre Konfiguration anpassen: __CAPGO_KEEP_0__
-
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,},});
the vollständige Implementierung zur Referenz.
Schritt 5: Testen der Integration
Abschnitt mit dem Titel „Schritt 5: Testen der Integration”-
Ihre Android-App erstellen und ausführen
Terminalfenster npx cap sync androidnpx cap run android -
Die Authentifizierungsablauf testen
- Auf den „Mit Apple anmelden“-Button tippen
- Sie sollten die Apple OAuth-Seite in einem Browser sehen
- Nach der Authentifizierung sollten Sie wieder in Ihre App zurückgeleitet werden
- Überprüfen Sie die Konsole auf Fehlermeldungen
-
Überprüfen Sie den Fluss
Der gesamte Fluss sollte sein:
- Benutzer klickt auf „Mit Apple anmelden“
- Die App öffnet einen Browser mit Apple OAuth
- Benutzer authentifiziert sich bei Apple
- Apple leitet zu:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callback - Edge-Funktion tauscht code gegen Token aus
- Edge-Funktion leitet zu:
your-app://path?id_token=...&access_token=... - 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
Fehlerbehebung
Abschnitt mit der Überschrift „Fehlerbehebung“Wenn die Authentifizierung fehlschlägt:
- URI-Mismatch: Überprüfe, dass die Rückruf-URL im Apple-Entwicklerportal genau mit
APPLE_REDIRECT_URIGeheimer Schlüssel - Deep-Link funktioniert nicht: Überprüfe, dass
AndroidManifest.xmlIntent-Filter passt sich deinemBASE_REDIRECT_URL - Geheime Schlüssel fehlt: Überprüfe, dass alle Geheimwerte korrekt gesetzt sind, indem du
supabase secrets list - Token-Wechsel fehlschlägt: Überprüfe die Edge-Function-Logs im Supabase-Dashboard für detaillierte Fehlermeldungen
- Die App erhält keine Callback: 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”Auf 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
- Hintergrund-Aufruf: Apple leitet Ihren Supabase Edge-Funktion mit einer Autorisierung code um
- Tokenaustausch: Die Edge-Funktion tauscht den code gegen Token aus, indem sie das Token-Endpunkt von Apple verwendet
- Deep Link Redirect: Die Edge-Funktion leitet den Benutzer 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 erforderlich, weil Apple keine native Android-Unterstützung für Sign in with Apple bietet.
Fortsetzen von Supabase Apple Login auf Android
: Titel des Abschnitts 'Fortsetzen 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, Mit @capgo/capacitor-social-login für die Implementierungsdetails in @capgo/capacitor-social-login, Mit @capgo/capacitor-passkey für die Implementierungsdetails in @capgo/capacitor-passkey, Mit @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.