Zum Inhalt springen

Apple-Login auf Android

GitHub

Apple-Login auf Android ist umständlich. Apple bietet keine offizielle Unterstützung für Android, daher ist die Lösung etwas umständlich. Sign in with Apple Android verwendet derzeit einen Chrome-Tab, um eine OAuth2-Website anzuzeigen. Diese Methode hat die Herausforderungen:

Schwierige Konfiguration

  • Ein Backend ist erforderlich
  • Verständnis des Flusses auf Android.

Lasst mich ein Diagramm verwenden, um den Ablauf auf Android zu erklären:

Nachdem Sie sich der Herausforderungen und des Flusses bewusst sind, beginnen wir mit der Konfiguration.

  1. Anmeldung im Apple-Entwicklerportal.

  2. Klicken Sie auf Identifiers.

    Apple-Entwicklerportal-Identifikatoren-Sektion

    Sie sollten eine Seite sehen, die wie folgt aussieht:

    Apple-Entwicklerportal-Identifikatoren-Seite
    1. Stellen Sie sicher, dass dieses Feld lautet App IDs
    2. Stellen Sie sicher, dass Sie Ihr App-ID finden können.
  3. Stellen Sie sicher, dass die Sign in with Apple für Ihre App aktiviert ist.

    1. Klicken Sie auf Ihre App Wählen Sie Ihre App aus der Liste
    2. Stellen Sie sicher, dass die Sign in with Apple für Ihre App aktiviert ist. Mit Apple-Konto anmelden-Fähigkeit aktivieren
    3. Wenn sie nicht aktiviert ist, aktivieren Sie sie.
  4. Zurück zu allen All Identifiers

    Alle Identifikatoren-Navigationsschaltfläche
  5. Klicken Sie auf App Ids und gehen Sie zu Services IDs

    Navigation zur Dienstleistungs-ID-Sektion
  6. Erstellen Sie eine neue Identifikator

    1. Klicken Sie auf die Plus-Taste

      Neue Dienstleistungs-ID hinzufügen-Schaltfläche
    2. Auswählen Servcice IDs und klicken Sie Continue

      Dienstleistungs-ID auswählen
    3. Beschreibung und Identifikatoren eingeben und klicken Continuie.

      Eingabe von Dienstleistungs-ID-Daten
    4. Bitte überprüfen Sie die Details und klicken Sie auf Register

      Bestätigung der Registrierung der Service-ID
    5. Klicken Sie auf die neu erstellte Service

      Auswahl der neu erstellten Service-ID
    6. Aktivieren Sie die Sign in with Apple Option

      Aktivierung der Anmeldung mit Apple für die Service-ID
    7. Konfigurieren Sie das Sign In with Apple

      Konfiguriere den Button für Anmeldung mit Apple
    8. Stellen Sie sicher, dass der Primary App ID ist auf die App-ID eingestellt, die im vorherigen Schritt konfiguriert wurde

      Einstellung des Primär-App-ID-Auswahlfelds
    9. Fügen Sie die Domain hinzu, auf der Sie Ihren Backend-Server hosten werden.

      Einstellung der Domain- und Rückruf-URL-Felder
    10. Bestätigen Sie die Daten und klicken Sie Done

      Bestätigung der Domain- und Rückruf-URL-Konfiguration
    11. Klicken Sie auf Continue

      Weiter-Button für die Dienst-Konfiguration
    12. Klicken Sie auf Save

      Speichern-Button für die Dienst-Konfiguration
  1. Gehen Sie zurück zu allen All Identifiers

    Alle Identifikatoren-Navigationsschaltfläche
  2. Klicken Sie auf Keys

    Sektor Schlüssel in Apple-Entwicklerportal
  3. Klicken Sie auf das Plus-Symbol

    Neuen Schlüssel hinzufügen
  4. Benennen Sie Ihren Schlüssel

    Schlüsselname-Eingabefeld
  5. Auswählen Sign in with Apple und klicken Configure

    Aktivieren und konfigurieren Sie Sign in with Apple für die Schlüssel
  6. Wählen Sie die primäre App-ID aus und drücken Sie Save

    Auswahl der primären App-ID für die Schlüssel
  7. Klicken Sie auf Continue

    Weiter-Button für die Schlüsselkonfiguration
  8. Klicken Sie auf Register

    Registrierungs-Button für die Schlüsselerstellung
  9. Kopieren Sie die Schlüssel-ID und laden Sie die Schlüssel herunter.

    Schlüssel-ID und Download-Button-Bildschirm
  10. Finden Sie das heruntergeladene Schlüsseldokument und speichern Sie es im Backend-Ordner.

    Heruntergeladener Schlüsseldatei

Um Login with Apple auf Android zu verwenden, müssen Sie die Team IDerhalten. Sie wird im Backend verwendet.

  1. Gehe zu dieser Website und scrolliere nach unten

  2. Finde die Team ID

    Team-ID in der Entwicklerkonto

Wie Sie im Diagramm sehen, führt der Backend einen Schritt aus, der Redirect back to the appdies erfordert manuelle Änderungen an Ihrer App.

  1. Ändere das AndroidManifest.xml
    1. Öffne das Datei, ich werde AndroidStudio

      Datei AndroidManifest.xml in Android Studio
    2. Finde das MainActivity und füge den folgenden Intent-Filter hinzu

      Intent-Filter code zum Hinzufügen in MainActivity
      <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>
  2. Ändere das MainActivity
    1. Bitte öffne das MainActivity

      MainActivity.java-Datei in Android Studio
    2. Füge den folgenden code hinzu:

      Code zum Hinzufügen in MainActivity für die Verarbeitung von tiefen Links
      @Override
      protected 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);
      }

Ein Backend ist für Android erforderlich, aber die Konfiguration eines Backends wird auch den IOS-Einfluss beeinflussen. Ein Beispiel-Backend wird bereitgestellt hier

Dieses Beispiel bietet folgendes:

  • Ein einfacher JSON-Datenbank
  • Eine Möglichkeit, den JWT von Apples Servern zu erhalten
  • Eine einfache JWT-Verifizierung

Gegeben alles, was ich in diesem Tutorial gesagt habe, hier ist, wie man das env Abschnitt würde so aussehen:

  • ANDROID_SERVICE_ID = Dienst-ID
  • IOS_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"
}

Die Verwendung der login Funktion ändert sich nicht, es ist dieselbe wie bei IOS. Bitte nehmen Sie einen Blick auf diesen Abschnitt, um mehr Informationen zu erhalten. ALLERDINGS, die initialize Methode ändert sich ein bisschen.

await SocialLogin.initialize({
apple: {
clientId: 'ee.forgr.io.ionic.starter.service2',
redirectUrl: 'https://appleloginvps.wcaleniewolny.me/login/callback'
}
})
  1. Wenn Sie noch keinen App-Id haben, klicken Sie auf die Plus-Taste

    Hinzufügen neuer Identifikator Plus-Taste
  2. Auswählen App IDs und klicken Sie auf Fortsetzen

    Auswahl der App-IDs-Typ
  3. Klicken Sie auf den Typ App und klicken Sie Continue

    Auswahl des App-Typs
  4. Geben Sie die Beschreibung und die App-ID ein

    Eingabe der App-Beschreibung und des Bundle-IDs
  5. Aktivieren Sign with Apple Fähigkeit

    Aktivierung der Sign-in-with-Apple-Fähigkeit
  6. Klicken Continue

    Fortschrittstaste für die Anwendungsregistrierung
  7. Bestätigen Sie die Details und klicken Sie Register

    Bestätigung der Anwendungsregistrierungsdetails

Wenn Sie die Verwendung von Apple-Login auf Android zur Planung der Authentifizierung und der Kontoflows verwenden, verbinden Sie es mit Verwendung von @capgo/capacitor-social-login Für die native Fähigkeit in 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 in Zwei-Faktor-Authentifizierung.