Zum Inhalt springen

Apple-Login auf Android

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

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

  • Schwierige Konfiguration
  • Ein Backend ist erforderlich

Ich möchte ein Diagramm verwenden, um den Fluss auf Android zu erklären:

Da Sie nun die Herausforderungen und den Ablauf kennen, können wir mit der Konfiguration beginnen.

Erstellung der Dienst-ID

Abschnitt "Erstellung der Dienst-ID"
  1. Anmeldung im Apple-Entwicklerportal.

  2. Klicken Sie auf Identifiers.

    Abschnitt "Identifikatoren" im Apple-Entwicklerportal

    Sie sollten eine Seite sehen, die wie folgt aussieht:

    Bildschirm "Identifikatoren" im Apple-Entwicklerportal
    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 Funktion für Ihre App

    1. Klicken Sie auf Ihre App Auswählen Sie Ihre App aus der Liste
    2. Stellen Sie sicher, dass die Sign in with Apple Funktion aktiviert ist Hinweis: Die Apple Login-Funktion ist aktiviert
    3. Wenn es nicht aktiviert ist, aktivieren Sie es.
  4. Zurück zu allen All Identifiers

    Zurück zur Identifikatoren-Navigation
  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 Service-IDs-Taste
    2. Auswählen Servcice IDs und klicken Sie Continue

      Auswahl der Service-IDs-Option
    3. Eingeben Sie eine Beschreibung und einen Identifikator und klicken Sie Continuie.

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

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

      Auswahl des neu erstellten Service-IDs
    6. Aktivieren Sie die Sign in with Apple Option

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

      Schaltfläche zum Konfigurieren von Sign in with Apple
    8. Stellen Sie sicher, dass der Primary App ID auf die im vorherigen Schritt konfigurierte App-ID festgelegt ist

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

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

      Bestätigung der Domäne und der Rückgabeadresse-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. Zurück zu allen All Identifiers

    Alle Identifikatoren-Button
  2. Klicken Sie auf Keys

    Schaltfläche "Keys" im Apple Developer Portal
  3. Klicken Sie auf das Plus-Symbol

    Schaltfläche "Neuer Schlüssel"
  4. Benennen Sie Ihren Schlüssel

    Eingabe des Schlüsselnamens
  5. Auswählen Sign in with Apple und klicken Configure

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

    Wählen Sie die primäre 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üssel-Erstellung
  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 Login with Apple für Android zu verwenden, müssen Sie die Team ID Es wird im Backend verwendet.

  1. Gehe zu Diese Website und scrollen Sie nach unten

  2. Finden Sie die Team ID

    Team-ID-Locator in Ihrem Entwicklerkonto

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

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

      AndroidManifest.xml-Datei in Android Studio
    2. Finden Sie die 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 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 auf IOS Auswirkungen haben. Ein Beispiel-Backend ist hier verfügbar Ein Beispiel-Backend ist hier verfügbar.

Dieses Beispiel bietet folgendes:

  • Ein einfacher JSON-Datenbank
  • Eine Möglichkeit, den JWT von Apple's Servern abzurufen
  • Eine einfache JWT-Verifizierung

Abschnitt aussehen würde: env __CAPGO_KEEP_0__

  • 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, sie ist gleich wie bei IOS. Bitte nehmen Sie einen Blick in diesen Abschnitt, um mehr zu erfahren. 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 keinen App-Id besitzen, klicken Sie auf die Plus-Taste

    Neuer Identifikator plus-Taste
  2. Auswählen App IDs und klicken Sie auf Weiter

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

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

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

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

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

    Bestätigung der Registrierungsdaten der App

Wenn Sie die Verwendung von Apple-Login auf Android zum Planen der Authentifizierung und der Kontoflows verbinden, verbinden Sie es mit Verwendung von @capgo/capacitor-social-login für die native Fähigkeit in Verwendung von @capgo/capacitor-social-login, Verwendung von @capgo/capacitor-social-login für die Implementierungsdetails in @capgo/capacitor-social-login, Verwendung von @capgo/capacitor-passkey für die Implementierungsdetails in @capgo/capacitor-Passkey @capgo/capacitor-native-biometrische für die Implementierungsdetails in @capgo/capacitor-native-biometrische, und Zweifaktor-Authentifizierung für die Implementierungsdetails in Zweifaktor-Authentifizierung.