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 Apple-Login auf Android ist hacky. Apple bietet keine offizielle Unterstützung für

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

  • Schwierige Konfiguration
  • Ein Backend ist erforderlich

Verständnis des Flusses auf Android

Verständnis des Flusses auf Android.

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 Developer Portal.

  2. Klicken Sie auf Identifiers.

    Apple Developer Portal Identifiers Abschnitt

    Sie sollten eine Seite sehen, die wie folgt aussieht:

    Apple Developer Portal Identifiers Seite
    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 Wählen Sie Ihre App aus der Liste
    2. Stellen Sie sicher, dass die Sign in with Apple Funktion aktiviert ist Aktivieren Sie die Apple-Sign-in-Funktion
    3. Wenn sie nicht aktiviert ist, aktivieren Sie sie.
  4. Gehen Sie zurück zu allen All Identifiers

    Alle Identifikatoren-Navigationsschaltfläche
  5. Klicken Sie auf App Ids und gehen Sie zu Services IDs

    Navigation zu den Dienst-IDs-Sektion
  6. Erstellen Sie einen neuen Identifikator

    1. Klicken Sie auf die Plus-Schaltfläche

      Hinzufügen neuer Dienst-IDs-Schaltfläche
    2. Auswählen Servcice IDs und klicken Continue

      Dienst-IDs-Auswahloption
    3. Beschreiben Sie eine Beschreibung und einen Identifikator und klicken Sie Continuie.

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

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

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

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

      Konfigurations-Schaltfläche für die Anmeldung mit Apple
    8. Stellen Sie sicher, dass die Primary App ID wird auf die im vorherigen Schritt konfigurierte App-ID festgelegt

      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ätigen Sie die Domain- und Rückgabedatenkonfiguration
    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

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

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

    Schlüssel hinzufügen
  4. Benennen Sie Ihren Schlüssel

    Eingeben Sie den Schlüsselnamen
  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 den primären App ID, und drücken Sie Save

    Auswählen des primären App ID für den Schlüssel
  7. Klicken Sie auf Continue

    Fortsetzen-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 Login with Apple auf Android zu verwenden, müssen Sie die Team ID. Es wird im Backend verwendet.

  1. Zum besuchen Sie diese Website und scrollen Sie nach unten

  2. Finde die Team ID

    Team-ID-Locations in Entwicklerkonto

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

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

      Datei AndroidManifest.xml in Android Studio
    2. Finde die 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. Ändern Sie das 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 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);
      }

Ein Hintergrund ist für Android erforderlich, aber die Konfiguration eines Hintergrunds wird auch den IOS-Einfluss beeinflussen. Ein Beispiel für einen Hintergrund wird Zum Beispiel

Dieses Beispiel bietet folgendes:

  • Ein einfaches JSON-Datenbank-Beispiel
  • Auswahlmöglichkeit, um den JWT von Apples Servern zu erhalten
  • Einfache JWT-Verifizierung

Gegeben alles, was ich in diesem Tutorial gesagt habe, hier ist, wie die env Sektion 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 von login Die Funktion ändert sich nicht, sie ist gleich wie bei IOS. Bitte haben Sie einen Blick in diese Abschnitt für weitere Informationen. ALLERDINGS, der 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 plus-Taste
  2. Auswählen App IDs und klicken Sie auf Weiter

    Die Auswahl von App-IDs-Typ
  3. Klicken Sie auf den Typ App und klicken Continue

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

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

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

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

    App-Registrierungsdetails bestätigen

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 Zweifaktor-Authentifizierung für die Implementierungsdetails in Zweifaktor-Authentifizierung.