Zum Inhalt springen

Apple-Login auf Android

GitHub

Apple-Login auf Android ist umgangssprachlich. Apple bietet keine offizielle Unterstützung für Sign in with Apple auf Android, daher ist die Lösung leicht umgangssprachlich.

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

  • Schwierige Konfiguration
  • Ein Backend ist erforderlich

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

Jetzt, da Sie sich der Herausforderungen und des Flusses bewusst sind, können wir mit der Konfiguration beginnen.

  1. Anmelden bei dem 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 Funktion 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 Funktion für Ihre App aktiviert ist Mit Apple-Anmeldung aktivieren
    3. Wenn es nicht aktiviert ist, aktivieren Sie es.
  4. Zurück zu allen All Identifiers

    Alle Identifikatoren-Navigation
  5. Klicken Sie auf App Ids und gehen Sie zu Services IDs

    Navigation zu Dienstleistungs-IDs-Sektion
  6. Einen neuen Identifikator erstellen

    1. Klicken Sie auf die Plus-Taste

      Hinzufügen neuer Dienstleistungs-ID
    2. Wählen Sie Servcice IDs und klicken Sie Continue

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

      Dienstleistungs-ID-Details eingeben
    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 die Schaltfläche für Anmelden mit Apple
    8. Stellen Sie sicher, dass die Primary App ID ist auf die App-ID eingestellt, die im vorherigen Schritt konfiguriert wurde

      Einstellung der primären App-ID
    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 Developer Portal
  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

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

    Primäre App-ID für die Schlüssel auswählen
  7. Klicken Sie auf Continue

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

    Registrierungs-Button für die Schlüsselbereitstellung
  9. Die Schlüssel-ID kopieren und die Schlüssel herunterladen.

    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 IDEs wird im Backend verwendet.

  1. Gehe zu dieser Website und scrolliere nach unten

  2. Finde die Team ID

    Team-ID-Stelle im Entwicklerkonto

Da du im Diagramm gesehen hast, führt der Backend einen Schritt aus, der Redirect back to the apperfordert manuelle Änderungen an deiner App.

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

      AndroidManifest.xml-Datei 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 einfaches 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 dasselbe wie bei IOS. Bitte haben Sie einen Blick in diesen 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. Klicken Sie auf den Plus-Button, wenn Sie keinen App-Id haben

    Hinzufügen eines neuen Identifikators
  2. Wählen Sie App IDs und klicken Sie auf Fortfahren

    App-ID-Typ auswählen
  3. Klicken Sie auf Typ App und klicken Sie Continue

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

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

    Die Anmeldung mit Apple-Funktion aktivieren
  6. Klicken Continue

    Fortsetzungs-Button für die Anwendungsregistrierung
  7. Bestätigen Sie die Details und klicken Sie Register

    Bestätigung der Anwendungsregistrierungsdetails

Wenn Sie Apple-Login auf Android verwenden Apple-Login auf Android um die Authentifizierung und die Kontoflussplanung vorzubereiten, verbinden Sie es mit Verwenden Sie @capgo/capacitor-social-login Für die native Fähigkeit in Verwenden Sie @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.