Apple Login unter Android
Kopiere einen Setup-Prompt mit den Installationsschritten und dem vollständigen Markdown-Guide für dieses Plugin.
Apple Login auf Android ist hacky. Apple bietet keinen offiziellen Support dafür Sign in with Apple auf Android, daher ist die Lösung etwas hacky.
Android nutzt aktuell Chrome Tabs, um eine OAuth2-Website anzuzeigen. Dieser Ansatz bringt folgende Herausforderungen mit sich:
- Schwierige Konfiguration
- Ein Backend ist erforderlich
Den Flow auf Android verstehen.
Abschnitt mit dem Titel „Den Flow auf Android verstehen.“Ich nutze ein Diagramm, um den Flow auf Android zu erklären:
flowchart TD
A("await SocialLogin.login()") -->|Handled in the plugin|B(Generate the login URL)
B --> |Pass the link| C(Open the Chrome browser)
C --> D(Wait for the user to login)
D --> |Apple redirects to your backend|E(Handle the data returned from Apple)
E --> F(Redirect back to the app)
F --> G(Return to JS)
Nachdem du die Herausforderungen und den Flow kennst, lass uns mit der Konfiguration beginnen.
Service-ID erstellen
Abschnitt mit dem Titel „Service-ID erstellen“-
Logge dich ein bei Apple Developer Portal.
-
Klicken Sie auf
Identifiers.
Du solltest einen Bildschirm sehen, der so aussieht:
- Stelle sicher, dass in diesem Feld steht
App IDs - Vergewissere dich, dass du deine App ID findest.
- Stelle sicher, dass in diesem Feld steht
-
Stelle sicher, dass die
Sign in with AppleCapability für deine App aktiviert ist- Klicke auf deine App
- Stelle sicher, dass
Sign in with AppleCapability ist aktiviert
- Falls sie nicht aktiviert ist, aktiviere sie.
- Klicke auf deine App
-
Zurück zu allen
All Identifiers
-
Klicken Sie auf
App Idsund gehe zuServices IDs
-
Einen neuen Identifier erstellen
-
Klicke auf den Plus-Button
-
Wähle
Servcice IDsund klicke aufContinue
-
Beschreibung und Identifier eingeben und klicken
Continuie.
-
Bitte überprüfe die Details und klicke
Register
-
Klicke auf den neu erstellten Service
-
Aktiviere
Sign in with AppleOption
-
Konfiguriere
Sign In with Apple
-
Stelle sicher, dass
Primary App IDauf die im vorherigen Schritt konfigurierte App ID gesetzt ist
-
Füge die Domain hinzu, auf der du dein Backend hostest.
-
Bestätige die Angaben und klicke auf
Done
-
Klicken Sie auf
Continue
-
Klicken Sie auf
Save
-
Erstellen des Keys
Abschnitt „Erstellen des Keys“-
Zurück zu allen
All Identifiers
-
Klicken Sie auf
Keys
-
Auf das Plus-Icon klicken
-
Key benennen
-
Wähle
Sign in with Appleund klicke aufConfigure
-
Wähle die primäre App ID aus und drücke
Save
-
Klicken Sie auf
Continue
-
Klicken Sie auf
Register
-
Key ID kopieren und Key herunterladen.
-
Suche den heruntergeladenen Key und speichere ihn im Backend-Ordner.
Team ID abrufen
Abschnitt mit dem Titel „Team ID abrufen“Um zu nutzen Login with Apple musst du unter Android die Team IDabrufen. Diese wird im Backend verwendet.
-
Gehe zu diese Website und scrolle nach unten
-
Suche nach
Team ID
App-Redirect konfigurieren
Abschnitt: „App-Redirect konfigurieren“Wie im Diagramm zu sehen, führt das Backend einen Schritt namens Redirect back to the appaus. Dies erfordert manuelle Änderungen an deiner App.
- Ändere die
AndroidManifest.xml-
Öffne die Datei, ich verwende hier
AndroidStudio
-
Suche nach
MainActivityund füge den folgenden Intent-Filter hinzu
<intent-filter><action android:name="android.intent.action.VIEW" /><category android:name="android.intent.category.DEFAULT" /><category android:name="android.intent.category.BROWSABLE" /><data android:scheme="capgo-demo-app" android:host="path" /></intent-filter>
-
- Ändere die
MainActivity-
Bitte öffne die
MainActivity
-
Füge das folgende code hinzu:
@Overrideprotected void onNewIntent(Intent intent) {String action = intent.getAction();Uri data = intent.getData();if (Intent.ACTION_VIEW.equals(action) && data != null) {PluginHandle pluginHandle = getBridge().getPlugin("SocialLogin");if (pluginHandle == null) {Log.i("Apple Login Intent", "SocialLogin login handle is null");return;}Plugin plugin = pluginHandle.getInstance();if (!(plugin instanceof SocialLoginPlugin)) {Log.i("Apple Login Intent", "SocialLogin plugin instance is not SocialLoginPlugin");return;}((SocialLoginPlugin) plugin).handleAppleLoginIntent(intent);return;}super.onNewIntent(intent);}
-
Backend-Konfiguration
Abschnitt „Backend-Konfiguration“Für Android ist ein Backend erforderlich, aber die Konfiguration eines Backends wirkt sich auch auf iOS aus. Ein Beispiel-Backend wird bereitgestellt. hier
Dieses Beispiel bietet Folgendes:
- Eine einfache JSON-Datenbank
- Eine Möglichkeit, das JWT von Apples Servern anzufordern
- Eine einfache JWT-Verifizierung
Nach allem, was ich in diesem Tutorial erklärt habe, sieht der env Abschnitt so aus:
ANDROID_SERVICE_ID= Service-IDIOS_SERVICE_ID= App-ID
env: { PRIVATE_KEY_FILE: "AuthKey_U93M8LBQK3.p8", KEY_ID: "U93M8LBQK3", TEAM_ID: "UVTJ336J2D", ANDROID_SERVICE_ID: "ee.forgr.io.ionic.starter.service2", IOS_SERVICE_ID: "me.wcaleniewolny.test.ionic.vue", PORT: 3000, REDIRECT_URI: "https://xyz.wcaleniewolny.me/login/callback", BASE_REDIRECT_URL: "capgo-demo-app://path"}Mit dem Plugin
Abschnitt mit dem Titel „Using the plugin“Die Verwendung der login Die Funktion ändert sich nicht, sie ist dieselbe wie unter iOS. Weitere Infos findest du in diesem Abschnitt. ALLERDINGS, die initialize ändert sich die Methode etwas.
await SocialLogin.initialize({ apple: { clientId: 'ee.forgr.io.ionic.starter.service2', redirectUrl: 'https://appleloginvps.wcaleniewolny.me/login/callback' }})App erstellen
Abschnitt mit dem Titel „App erstellen“-
Falls du noch keine App ID hast, klicke auf den Plus-Button
-
Wähle
App IDsund klicke auf Weiter
-
Klicke auf den Typ
Appund klicke aufContinue
-
Beschreibung und App-ID eingeben
-
Aktivieren
Sign with AppleCapability
-
Klicken
Continue
-
Details bestätigen und klicken
Register
Nach Apple-Login auf Android fortfahren
Abschnitt „Weiter mit Apple Login auf Android“Wenn du es nutzt Apple Login unter 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.