Zum Inhalt springen

Apple Anmeldung bei Android

Apple Die Anmeldung auf Android ist schwierig. Apple bietet keine offizielle Unterstützung für Sign in with Apple auf Android, daher ist die Lösung etwas hackig.

Android verwendet derzeit Chrome-Tabs, um eine OAuth2-Website anzuzeigen. Dieser Ansatz birgt folgende Herausforderungen:

  • Schwierige Konfiguration
  • Ein Backend ist erforderlich

Lassen Sie mich den Ablauf auf Android anhand eines Diagramms erläutern:

Nachdem Sie nun die Herausforderungen und den Ablauf kennen, beginnen wir mit der Konfiguration.

  1. Melden Sie sich beim Apple Entwicklerportal an.

  2. Klicken Sie auf Identifiers.

    Apple Abschnitt „Entwicklerportal-IDs“.

    Sie sollten einen Bildschirm sehen, der so aussieht:

    Apple Bildschirm „Developer Portal Identifiers“.
    1. Stellen Sie sicher, dass in diesem Feld App IDs steht.
    2. Stellen Sie sicher, dass Sie Ihre App-ID finden können.

      Wenn Sie Apple Login für IOS nicht konfiguriert haben, müssen Sie eines erstellen. Für mich habe ich bereits eines erstellt. Die App-ID, die ich verwenden werde, ist me.wcaleniewolny.test.ionic.vue. Wenn Sie noch keine haben, erstellen Sie bitte eine mit dem Schritt „App erstellen“.

  3. Stellen Sie sicher, dass die Funktion Sign in with Apple für Ihre App aktiviert ist

    1. Klicken Sie auf Ihre App Wählen Sie Ihre App aus der Liste aus
    2. Stellen Sie sicher, dass die Funktion Sign in with Apple aktiviert ist Kontrollkästchen „Anmelden mit aktivierter Apple-Funktion“ aktivieren
    3. Wenn es nicht aktiviert ist, aktivieren Sie es.
  4. Gehen Sie zurück zu „Alle Bezeichner“.

  5. Klicken Sie auf „App-IDs“ und gehen Sie zu „Dienst-IDs“.

    Navigation zum Abschnitt „Dienst-IDs“.
  6. Erstellen Sie eine neue Kennung

    1. Klicken Sie auf den Plus-Button

      Schaltfläche „Neue Service-ID hinzufügen“.
    2. Wählen Sie „Dienst-IDs“ und klicken Sie auf Continue

      Auswahl der Option „Service-IDs“.
    3. Geben Sie eine Beschreibung und eine Kennung ein und klicken Sie auf Continuie.

      Eingeben von Service-ID-Details

      Dieser identifiers wird zum clientId, den Sie in der Funktion initialize UND ANDROID_SERVICE_ID für das Backend übergeben.

      Bitte speichern!!!

      Die Service-ID muss nicht mit der App-ID übereinstimmen, ich empfehle jedoch, die Service-ID auf YOUR_APP_ID.service festzulegen. Zur Erinnerung: Ich verwende me.wcaleniewolny.test.ionic.vue als meine App-ID, aber ich verwende ee.forgr.io.ionic.service2 als Dienst-ID.

    4. Bitte überprüfen Sie die Details und klicken Sie auf Register

      Bestätigen der Service-ID-Registrierung
    5. Klicken Sie auf den neu erstellten Dienst

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

      Aktivieren der Anmeldung mit Apple für die Dienst-ID
    7. Konfigurieren Sie den Sign In with Apple

      Schaltfläche „Konfigurieren“ für „Anmelden mit Apple“
    8. Stellen Sie sicher, dass die „Primäre App-ID“ auf die im vorherigen Schritt konfigurierte App-ID eingestellt ist

      Dropdown-Liste zum Festlegen der primären App-ID
    9. Fügen Sie die Domäne hinzu, auf der Sie Ihr Backend hosten möchten.Festlegen von Domänen- und Rückgabe-URL-Feldern

      Dieses Backend muss auf HTTPS ausgeführt werden. Was die „Rückgabe-URLs“ betrifft, möchten Sie möglicherweise darauf zurückkommen, nachdem Sie den nächsten Abschnitt dieses Tutorials gelesen und das Backend konfiguriert haben. Für die Zwecke dieses Tutorials verwende ich https://xyz.wcaleniewolny.me/login/callback als Rückgabe-URL und xyz.wcaleniewolny.me als Domäne. Drücken Sie Weiter.

    10. Bestätigen Sie die Daten und klicken Sie auf Done

      Bestätigen der Domänen- und Rückgabe-URL-Konfiguration
    11. Klicken Sie auf Continue

      Schaltfläche „Weiter“ für die Dienstkonfiguration
    12. Klicken Sie auf Save

      Schaltfläche „Speichern“ für die Dienstkonfiguration
  1. Gehen Sie zurück zu „Alle Bezeichner“.

    Navigationsschaltfläche „Alle Bezeichner“.
  2. Klicken Sie auf Keys

    Abschnitt „Schlüssel“ im Entwicklerportal Apple
  3. Klicken Sie auf das Plus-Symbol

    Schaltfläche „Neuen Schlüssel hinzufügen“.
  4. Benennen Sie Ihren Schlüssel

    Eingabefeld für den Schlüsselnamen

    Dieser Name ist nicht wichtig, Sie können alles eingeben.

  5. Wählen Sie Sign in with Apple und klicken Sie auf Configure

    Aktivieren und Konfigurieren der Anmeldung mit Apple für den Schlüssel
  6. Wählen Sie die primäre App-ID aus und drücken Sie Save.

    Auswählen der primären App-ID für den Schlüssel

    Dies muss dieselbe App-ID sein wie die ID in den vorherigen Schritten.

  7. Klicken Sie auf Continue

    Schaltfläche „Weiter“ zur Tastenkonfiguration
  8. Klicken Sie auf Register

    Schaltfläche „Registrieren“ für die Schlüsselerstellung
  9. Kopieren Sie die Schlüssel-ID und laden Sie den Schlüssel herunter.

    Schlüssel-ID und Download-Schaltflächenbildschirm

    WICHTIG: Speichern Sie diese ID, im Backend heißt sie KEY_ID. Laden Sie den Schlüssel herunter. Stellen Sie sicher, dass Sie diesen Schlüssel niemals weitergeben.

  10. Suchen Sie den heruntergeladenen Schlüssel und speichern Sie ihn im Backend-Ordner.

    Schlüsseldatei heruntergeladen

Um Login with Apple auf Android verwenden zu können, benötigen Sie die „Team-ID“. Es wird im Backend verwendet.

  1. Gehen Sie zu dieser Website und scrollen Sie nach unten

  2. Suchen Sie die „Team-ID“.

    Standort der Team-ID im Entwicklerkonto

Wie Sie im Diagramm gesehen haben, führt das Backend einen Schritt namens „Zurück zur App umleiten“ aus. Dies erfordert manuelle Änderungen an Ihrer App.

  1. Ändern Sie AndroidManifest.xml
    1. Öffnen Sie die Datei, ich verwende AndroidStudio

      AndroidManifest.xml-Datei in Android Studio
    2. Suchen Sie nach MainActivity und fügen Sie den folgenden Intent-Filter hinzu

      Absichtsfiltercode 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. Ändern Sie MainActivity
    1. Bitte öffnen Sie das MainActivity

      MainActivity.java-Datei in Android Studio
    2. Fügen Sie den folgenden Code hinzu:

      Code zum Hinzufügen zu MainActivity für die Verarbeitung von Deep 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);
      }

      In diesem Beispiel wird davon ausgegangen, dass Sie keine Deep Links konfiguriert haben. Passen Sie in diesem Fall bitte den Code an

Für Android ist ein Backend erforderlich, aber die Konfiguration eines Backends wirkt sich auch auf IOS aus. Ein Beispiel-Backend finden Sie hierDieses Beispiel bietet Folgendes:

  • Eine einfache JSON-Datenbank – Eine Möglichkeit, JWT von den Servern von Apple anzufordern
  • Eine einfache JWT-Verifizierung

Angesichts all dessen, was ich in diesem Tutorial gesagt habe, würde der Abschnitt env folgendermaßen 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 Funktion login ändert sich nicht, sie ist dieselbe wie bei IOS. Weitere Informationen finden Sie in diesem Abschnitt. Allerdings ändert sich die Methode initialize ein wenig.

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

    Schaltfläche „Neuen Bezeichner hinzufügen“ hinzufügen
  2. Wählen Sie „App-IDs“ und klicken Sie auf „Weiter“.

    Auswählen des App-ID-Typs
  3. Klicken Sie auf Typ App und klicken Sie auf Continue

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

    Eingabe der App-Beschreibung und Bundle-ID
  5. Aktivieren Sie die Sign with Apple-Funktion

    Aktivieren der Anmeldung mit der Apple-Funktion
  6. Klicken Sie auf Continue

    Schaltfläche „Weiter“ für die App-Registrierung
  7. Bestätigen Sie die Details und klicken Sie auf Register

    Bestätigen der App-Registrierungsdetails