Zum Inhalt springen

Apple Login auf Android

GitHub

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

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

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

  1. Anmeldung im Apple Developer Portal.

  2. Klicken Sie auf Identifiers.

    Apple Developer Portal Identifikationsbereich

    Sie sollten eine Seite sehen, die wie folgt aussieht:

    Apple Developer Portal Identifikationsseite
    1. Stellen Sie sicher, dass dieses Feld lautet App IDs
    2. Stellen Sie sicher, dass Sie Ihre App-ID finden können.
  3. Stellen Sie sicher, dass die Sign in with Apple Fähigkeit 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 aktiviert ist __CAPGO_KEEP_0__ Funktion aktiviert ist
    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 neuer Dienst-IDs-Schaltfläche
    2. Auswählen Servcice IDs und klicken Sie Continue

      Auswahl der Service-IDs-Option
    3. Geben Sie eine Beschreibung und Identifikatoren ein und klicken Sie Continuie.

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

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

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

      Aktivieren Sie Sign in with Apple für die Dienst-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 in Schritt 1 konfigurierte App-ID festgelegt ist

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

      Einstellung der Domain- und Rückruf-URL-Felder
    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

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

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

    Navigations-Button für alle Identifikatoren
  2. Klicken Sie auf Keys

    Schlüsselsparte im Apple-Entwickler-Portal
  3. Klicken Sie auf das Plus-Symbol

    Neuen Schlüssel hinzufügen
  4. Schlüssel Ihren Schlüssel benennen

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

    Die Aktivierung und Konfiguration von Sign in with Apple für die Schlüssel
  6. Auswählen Sie die primäre App-ID und drücken Sie Save

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

    Schaltfläche Weiter für die Schlüsselkonfiguration
  8. Klicken Sie auf Register

    Registrierungsbutton für die Erstellung der Schlüssel
  9. Kopieren Sie die Schlüssel-ID und laden Sie den Schlüssel herunter.

    Schlüssel-ID und Download-Button-Bildschirm
  10. Finden Sie den heruntergeladenen Schlüssel und speichern Sie ihn im Backend-Ordner.

    Heruntergeladener Schlüssel-Datei

Um dieses Feature zu nutzen, benötigen Sie Login with Apple auf Android, die Team IDSie wird im Backend verwendet.

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

  2. Finden Sie die Team ID

    Team-ID in Ihrem Entwicklerkonto

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.

  1. Ändern Sie den AndroidManifest.xml
    1. Öffnen Sie das Datei, ich werde verwenden 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 die MainActivity

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

      Code um in MainActivity für die Verarbeitung von Deep-Links hinzuzufügen
      @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 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-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 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'
}
})
  1. Wenn Sie noch keine App-ID besitzen, klicken Sie auf die Plus-Taste

    Plus-Taste für neue Identifikator hinzufügen
  2. Auswählen App IDs und klicken Sie auf Weiter

    Auswahl der App-ID-Typen
  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

    Apple-Sign-in-Fähigkeit aktivieren
  6. Klicken Continue

    Fortsetzen-Button für die App-Registrierung
  7. Bestätigen Sie die Details und klicken Register

    Bestätigung der App-Registrierungs-Daten

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.