Apple Login auf Android
Kopieren Sie einen Einrichtungsbefehl mit den Installationsanweisungen und der vollständigen Markdown-Dokumentation für diesen Plugin.
Apple-Login auf Android ist hacky. Apple bietet offiziell keine Unterstützung für Sign in with Apple Da Apple offiziell keine Unterstützung für
Android verwendet derzeit ein Chrome-Tabs, um eine OAuth2-Website anzuzeigen. Diese Methode hat die Herausforderungen:
- Schwierige Konfiguration
- Ein Backend ist erforderlich
Verständnis des Flusses auf Android.
Abschnitt mit dem Titel „Verständnis des Flusses auf Android.“Lassen Sie mich ein Diagramm verwenden, um den Fluss 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)
Jetzt, da Sie sich der Herausforderungen und des Flusses bewusst sind, beginnen wir mit der Konfiguration.
Erstellung der Dienst-ID
Abschnitt mit dem Titel „Erstellung der Dienst-ID“-
Anmeldung im Apple Developer Portal.
-
Klicken Sie auf
Identifiers.
Sie sollten eine Seite sehen, die wie folgt aussieht:
- Stellen Sie sicher, dass dieses Feld lautet
App IDs - Stellen Sie sicher, dass Sie Ihre App-ID finden können.
- Stellen Sie sicher, dass dieses Feld lautet
-
Stellen Sie sicher, dass die
Sign in with AppleFähigkeit für Ihre App aktiviert ist- Klicken Sie auf Ihre App
- Stellen Sie sicher, dass die
Sign in with AppleFunktion aktiviert ist
- Wenn sie nicht aktiviert ist, aktivieren Sie sie.
- Klicken Sie auf Ihre App
-
Zurück zu allen
All Identifiers
-
Klicken Sie auf
App Idsund gehen Sie zuServices IDs
-
Erstellen Sie einen neuen Identifikator
-
Klicken Sie auf die Plus-Taste
-
Auswählen
Servcice IDsund klicken SieContinue
-
Geben Sie eine Beschreibung und Identifikatoren ein und klicken Sie
Continuie.
-
Bitte überprüfen Sie die Details und klicken Sie auf
Register
-
Klicken Sie auf die neu erstellte Dienst-ID
-
Aktivieren Sie die Option
Sign in with AppleOption
-
Konfigurieren Sie die
Sign In with Apple
-
Stellen Sie sicher, dass
Primary App IDauf die in Schritt 1 konfigurierte App-ID festgelegt ist
-
Fügen Sie die Domain hinzu, auf der Sie Ihren Backend hosten werden.
-
Bestätigen Sie die Daten und klicken Sie auf
Done
-
Klicken Sie auf
Continue
-
Klicken Sie auf
Save
-
Schlüssel erstellen
Abschnitt „Schlüssel erstellen“-
Zurück zu allen
All Identifiers
-
Klicken Sie auf
Keys
-
Klicken Sie auf das Plus-Symbol
-
Schlüssel Ihren Schlüssel benennen
-
Auswählen
Sign in with Appleund klickenConfigure
-
Auswählen Sie die primäre App-ID und drücken Sie
Save
-
Klicken Sie auf
Continue
-
Klicken Sie auf
Register
-
Kopieren Sie die Schlüssel-ID und laden Sie den Schlüssel herunter.
-
Finden Sie den heruntergeladenen Schlüssel und speichern Sie ihn im Backend-Ordner.
Das Team-ID-Beziehen
Abschnitt mit dem Titel “Team-ID erhalten”Um dieses Feature zu nutzen, benötigen Sie Login with Apple auf Android, die Team IDSie wird im Backend verwendet.
-
Gehen Sie zu dieser Website und scrollen Sie nach unten
-
Finden Sie die
Team ID
Anwendungsrouting konfigurieren
Abschnitt mit dem Titel “Anwendungsrouting konfigurieren”Wie Sie im Diagramm sahen, führt das Backend einen Schritt aus, der Redirect back to the app. Dies erfordert manuelle Änderungen an Ihrer App.
- Ändern Sie den
AndroidManifest.xml-
Öffnen Sie das Datei, ich werde verwenden
AndroidStudio
-
Finden Sie das
MainActivityund fügen Sie 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>
-
- Ändern Sie den
MainActivity-
Bitte öffnen Sie die
MainActivity
-
Fügen Sie den folgenden 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 mit dem Titel „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:
- Ein einfaches JSON-Datenbank-System
- Eine Möglichkeit, den JWT von Apples Servern abzurufen
- Eine einfache JWT-Verifizierung
Gegeben alles, was ich in diesem Tutorial gesagt habe, hier ist, wie die env Abschnitt aussehen würde:
ANDROID_SERVICE_ID= Dienst-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 “Mit dem Plugin”Die Verwendung der login Funktion ändert sich nicht, es ist dasselbe wie bei IOS. Bitte nehmen Sie einen Blick auf diese Abschnitt für weitere Informationen. ALLERDINGS, die initialize Der Vorgang ändert sich ein bisschen.
await SocialLogin.initialize({ apple: { clientId: 'ee.forgr.io.ionic.starter.service2', redirectUrl: 'https://appleloginvps.wcaleniewolny.me/login/callback' }})Die App erstellen
Abschnitt mit dem Titel “Die App erstellen”-
Wenn Sie noch keine App-ID besitzen, klicken Sie auf die Plus-Taste
-
Auswählen
App IDsund klicken Sie auf Weiter
-
Klicken Sie auf den Typ
Appund klicken SieContinue
-
Geben Sie die Beschreibung und die App-ID ein
-
Aktivieren
Sign with AppleFähigkeit
-
Klicken
Continue
-
Bestätigen Sie die Details und klicken
Register
Fortsetzen von Apple-Login auf Android
Abschnitt „Fortsetzen von Apple-Login auf Android“Wenn Sie Apple-Login auf Android für die Planung der Authentifizierung und der Kontoflows verwenden, verbinden Sie es mit Mit @capgo/capacitor-social-login für die native Fähigkeit in Mit @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 in Zwei-Faktor-Authentifizierung.