Supabase Apple Login auf Android
Kopiere einen Setup-Prompt mit den Installationsschritten und dem vollständigen Markdown-Guide für dieses Plugin.
Voraussetzungen
Abschnitt: „Voraussetzungen“Diese Anleitung hilft dir dabei, Apple Sign-In mit Supabase Authentication auf Android zu integrieren. Wir gehen davon aus, dass du bereits Folgendes abgeschlossen hast:
Schritt 1: Backend Edge Function bereitstellen
Abschnitt mit dem Titel „Schritt 1: Backend Edge Function deployen“Zuerst müssen wir die Supabase Edge Function deployen, die den Apple OAuth-Callback verarbeitet.
-
Navigiere zu deinem Supabase-Projektverzeichnis
Terminalfenster cd your-project/supabase -
Erstelle die Edge Function (falls sie noch nicht existiert)
Terminalfenster supabase functions new apple-signin-callback -
Kopiere die Edge Function code
Die vollständige Implementierung der Edge Function findest du in der Beispiel-App.
Kopiere die folgenden Dateien in dein Projekt:
supabase/functions/apple-signin-callback/index.ts- Haupt-Edge-Function codesupabase/functions/apple-signin-callback/deno.json- Import Map für Abhängigkeiten (inklusivejoseLibrary für JWT-Signing)
-
JWT-Verifizierung konfigurieren
Der Apple OAuth Callback-Endpoint muss öffentlich sein (keine Authentifizierung erforderlich), da Apple dorthin weiterleitet. Aktualisiere deinen
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" -
Function deployen
Terminalfenster supabase functions deploy apple-signin-callback -
Function-URL abrufen
Nach dem Deployment erhältst du eine URL wie:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callbackFalls du sie nicht findest, kannst du Folgendes tun:
- Öffne
https://supabase.com/dashboard/project/YOUR_PROJECT_REF/functions - Klicke auf die
apple-signin-callbackFunktions-URL zum Kopieren.
- Öffne
Schritt 2: Apple Developer Portal konfigurieren
Abschnitt mit dem Titel „Schritt 2: Apple Developer Portal konfigurieren“Jetzt müssen wir das Apple Developer Portal mit der Backend-URL konfigurieren und alle erforderlichen Werte abrufen.
-
Folge dem Apple Login Android Setup Guide
Schließe den Apple Login Android Setup Guide ab an:
- Erstelle eine Service ID
- Generiere einen Private Key (.p8 Datei)
- Hol dir deine Team ID und Key ID
- Konfiguriere die Return URL
-
Setze die Return URL im Apple Developer Portal
Nutze beim Konfigurieren der Return URL im Apple Developer Portal (Schritt 6.9 des Apple Guides) deine Supabase Edge Function URL:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callbackWichtig: Nutze die Supabase Edge Function URL
Benutze NICHT die Redirect-URL aus dem Apple Login Android Setup Guide. Dieser Guide nutzt eine eigene Backend-Server-URL. Für die Supabase-Integration musst du musst stattdessen deine Supabase Edge Function URL verwenden.
-
Alle erforderlichen Werte sammeln
Nach Abschluss der Apple-Setup-Anleitung sollten Sie Folgendes haben:
- APPLE_TEAM_ID: Ihre Apple Developer Team ID
- APPLE_KEY_ID: Die Key ID aus dem Apple Developer Portal
- APPLE_PRIVATE_KEY: Ihre .p8 Private Key Datei (muss base64-kodiert sein)
- ANDROID_SERVICE_ID: Deine Apple Service ID (z. B.
com.example.app.service) - BASE_REDIRECT_URL: Ihre Deep Link URL (z. B.,
capgo-demo-app://path)
Schritt 3: Supabase Secrets setzen
Abschnitt mit dem Titel „Schritt 3: Supabase Secrets setzen“Jetzt müssen wir die Umgebungsvariablen (Secrets) für die Supabase Edge Function konfigurieren.
-
Privaten Key encodieren
Codiere zuerst deinen Apple Private Key (.p8-Datei) in Base64:
Terminalfenster base64 -i AuthKey_XXXXX.p8Kopiere die gesamte Ausgabe (ein einziger langer String).
-
Secrets über 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: Secrets im Supabase Dashboard setzen
Falls du das Dashboard bevorzugst:
- Gehe zu deinem Supabase Project Dashboard
- Navigiere zu Edge Functions → Einstellungen → Secrets
- Füge jede Secret-Variable mit ihrem Wert hinzu
Schritt 4: Authentication Helper nutzen
Abschnitt mit dem Titel „Schritt 4: Authentication Helper nutzen“Jetzt kannst du den Authentication Helper in deiner App code nutzen.
Implementierung
Abschnitt „Implementierung“Die vollständige Implementierung findest du im der Beispiel-App supabaseAuthUtils.ts Datei.
Verwendung des Authentication Helpers
Abschnitt mit dem Titel „Verwendung des Authentication Helpers“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);}Helper Function aktualisieren
Abschnitt mit dem Titel „Helper Function aktualisieren“Wenn du die authenticateWithAppleSupabase Helper Function nutzt, musst du musst Passe die folgenden Werte an deine Konfiguration an:
-
Update
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; -
Update
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 den vollständige Implementierung als Referenz.
Schritt 5: Integration testen
Abschnitt mit dem Titel „Schritt 5: Integration testen“-
Android-App builden und ausführen
Terminalfenster npx cap sync androidnpx cap run android -
Authentifizierungs-Flow testen
- Tippe auf den „Sign in with Apple“-Button
- Du solltest die Apple OAuth-Seite im Browser sehen
- Nach der Authentifizierung solltest du zurück in deine App geleitet werden
- Prüfe die Console Logs auf Fehler
-
Flow verifizieren
Der vollständige Flow sollte so aussehen:
- User tippt auf „Sign in with Apple“
- App öffnet Browser mit Apple OAuth
- User authentifiziert sich bei Apple
- Apple leitet weiter zu:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callback - Edge Function tauscht code gegen Tokens
- Edge Function leitet weiter zu:
your-app://path?id_token=...&access_token=... - Android App erhält Deep Link und verarbeitet Identity Token
- App meldet sich mit Identity Token bei Supabase an
Fehlerbehebung
Abschnitt mit dem Titel „Troubleshooting“Falls die Authentifizierung fehlschlägt:
- Redirect-URI stimmt nicht überein: Stelle sicher, dass die Return URL im Apple Developer Portal exakt mit übereinstimmt:
APPLE_REDIRECT_URIsecret - Deep Link funktioniert nicht: Überprüfe, ob
AndroidManifest.xmlintent filter matches yourBASE_REDIRECT_URL - Fehlende Secrets: Verify all secrets are set correctly using
supabase secrets list - Token-Exchange schlägt fehl: Prüfe die Edge Function Logs im Supabase Dashboard für detaillierte Fehlermeldungen
- App erhält keinen Callback: Ensure
onNewIntentin der MainActivity korrekt implementiert ist - Überprüfe die Beispiel-App code als Referenz
So funktioniert es
Abschnitt „So funktioniert es“Unter Android nutzt Apple Sign-In einen OAuth-Redirect-Flow:
- Initialisierung: Das Plugin wird mit deiner Service ID und der Backend-Redirect-URL initialisiert
- OAuth-Flow: Öffnet einen Browser/Chrome Custom Tab mit der OAuth-Seite von Apple
- Backend-Callback: Apple leitet mit einem Authorization code an deine Supabase Edge Function weiter
- Token-Austausch: Die Edge Function tauscht den code über Apples Token-Endpoint gegen Tokens aus
- Deep Link Redirect: Die Edge Function leitet mit dem Identity Token zurück an deine App weiter
- Supabase-Authentifizierung: Die App erhält den Token und meldet sich bei Supabase an
Dieser Flow ist notwendig, da Apple keine native Android-Unterstützung für Sign in with Apple bietet.
Weiter mit Supabase Apple Login auf Android
Abschnitt mit dem Titel „Weiter mit Supabase Apple Login auf Android“Wenn du es nutzt Supabase Apple Login auf Android Um Authentifizierungs- und Account-Flows zu planen, verbinde es mit @capgo/capacitor-social-login verwenden für die native Funktion bei der Verwendung von @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 zur Zwei-Faktor-Authentifizierung.