Zum Inhalt springen

Apple-Anmeldung auf Android

Apple-Login auf Android ist umständlich. Apple bietet offiziell keine Unterstützung für Sign in with Apple auf Android, daher ist die Lösung etwas umständlich.

Android verwendet derzeit einen Chrome-Tab, um eine OAuth2-Website anzuzeigen. Diese Vorgehensweise hat die Herausforderungen:

  • Schwierige Konfiguration
  • Eine Backend-Instanz ist erforderlich

Lassen Sie mich ein Diagramm verwenden, um den Fluss auf Android zu erklären:

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

  1. Anmelden in das Apple-Entwicklerportal.

  2. Klicken Sie auf Identifiers.

    Apple-Entwicklerportal-Identifikatorenabschnitt

    Sie sollten eine Seite sehen, die wie folgt aussieht:

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

    1. Klicken Sie auf Ihre App Auswählen Sie Ihre App aus der Liste
    2. Stellen Sie sicher, dass Sign in with Apple Die Funktion ist aktiviert Apple-Sign-in-Funktion aktiviert
    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 Services-IDs-Sektion
  6. Erstellen Sie einen neuen Identifikator

    1. Klicken Sie auf die Plus-Taste

      Hinzufügen von Service-ID-Button
    2. Auswählen Servcice IDs und klicken Sie Continue

      Durch Auswahl der Service-IDs-Option
    3. Beschreiben Sie eine Beschreibung und Identifikatoren und klicken Sie Continuie.

      Eingeben von Service-ID-Daten
    4. Bitte überprüfen Sie die Details und klicken Sie Register

      Die Registrierung des Dienstleistungs-IDs wird bestätigt
    5. Klicken Sie auf die neu erstellte Dienstleistungs-ID

      Neu erstellte Dienstleistungs-ID auswählen
    6. Aktivieren Sie die Sign in with Apple Option

      Aktivieren Sie Sign in with Apple für die Dienstleistungs-ID
    7. Konfigurieren Sie die Sign In with Apple

      Konfigurations-Schaltfläche für Sign in with Apple
    8. Stellen Sie sicher, dass Primary App ID auf die App-ID festgelegt ist, die im vorherigen Schritt konfiguriert wurde

      Einstellung der Haupt-App-ID
    9. Fügen Sie die Domain hinzu, auf der Sie Ihren Backend-Server hosten werden.

      Einstellungen für die Domain und die Rückruf-URL
    10. Bestätigen Sie die Daten und klicken Sie auf Done

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

      Fortsetzen-Button für die Dienstkonfiguration
    12. Klicken Sie auf Save

      Speichern-Button für die Dienstkonfiguration
  1. Zurück zu allen All Identifiers

    Alle Identifikatoren-Navigation-Button
  2. Klicken Sie auf Keys

    Sektion Schlüssel im Apple Developer Portal
  3. Klicken Sie auf das Plus-Symbol

    Hinzufügen-Button für neue Schlüssel
  4. Ihre Schlüsselbezeichnung angeben

    Eingabe des Schlüsselbezeichnungsfelds
  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 den Schlüssel herunter.

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

    heruntergeladener Schlüssel-Datei

Um es zu verwenden Login with Apple auf Android benötigen Sie die Team ID. Es wird im Backend verwendet.

  1. Gehe zu dieser Website und scroll down

  2. Finden Sie die Team ID

    Team-ID-Locations in Entwicklerkonto

Die App-umleitung konfigurieren

Abschnitt: Die App-umleitung konfigurieren

Wie Sie im Diagramm sehen können, führt der Backend einen Schritt namens Redirect back to the appdurch. Dies erfordert manuelle Änderungen an Ihrer App.

  1. Ändern Sie den AndroidManifest.xml
    1. Öffnen Sie das Datei, ich werde AndroidStudio

      AndroidManifest.xml-Datei in Android Studio
    2. Finden Sie das MainActivity und fügen Sie 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. Ändern Sie den 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 von 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);
      }

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

Dieses Beispiel bietet folgendes:

  • Ein einfaches JSON-Datenbank
  • Eine Möglichkeit, den JWT von Apples Servern anzufordern
  • Eine einfache JWT-Verifizierung

Sektion so aus: env = Dienst-ID

  • ANDROID_SERVICE_ID = App-ID
  • IOS_SERVICE_ID Zwischenablage kopieren
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 des login Funktion ändert sich nicht, sie ist gleich wie bei IOS. Bitte haben Sie einen Blick in diese Abschnitt für weitere Informationen. 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

    Neuer Identifikator hinzufügen
  2. Wählen Sie App IDs und klicken Sie auf Weiter

    App-IDs auswählen
  3. Auswählen und klicken Sie auf App und klicken Sie auf Weiter Continue

    App-Typ auswählen
  4. Beschreibung und App-ID eingeben

    Beschreibung und Bundle-ID der App eingeben
  5. Aktivieren Sign with Apple Fähigkeit

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

    Weiter zum App-Registrierungsprozess
  7. Bestätigen Sie die Details und klicken Sie Register

    Bestätigung der App-Registrierungsdetails