Allez directement à la navigation

Connexion Apple sur Android

GitHub

Le login Apple sur Android est un peu hacky. Apple n'a pas de support officiel pour Sign in with Apple sur Android, donc la solution est légèrement hacky.

Android utilise actuellement une fenêtre de Chrome pour afficher un site Web OAuth2. Cette approche présente les défis :

  • Configuration difficile
  • Un serveur backend est requis

Utilisez un diagramme pour m'expliquer le flux sur Android :

Now that you are aware of the challenges and the flow, let’s begin the configuration.

  1. Se connecter à Portail du développeur Apple.

  2. Cliquez sur Identifiers.

    Section Identifiants du Portail du développeur Apple

    Vous devriez voir une page qui ressemble à ceci :

    Écran Identifiants du Portail du développeur Apple
    1. Assurez-vous que ce champ dit App IDs
    2. Assurez-vous que vous pouvez trouver votre ID d'application.
  3. Assurez-vous que la Sign in with Apple capacité est activée pour votre application

    1. Cliquez sur votre application La sélection de votre application de la liste
    2. Assurez-vous que la Sign in with Apple capacité est activée Case de sélection de la capacité Apple Sign in activée
    3. Si elle ne l'est pas, activez-la.
  4. Retour à tous All Identifiers

    Tous les identifiants bouton de navigation
  5. Cliquez sur App Ids et allez à Services IDs

    Navigation à la section des identifiants de services
  6. Créer un nouveau identifiant

    1. Cliquez sur le bouton plus

      Ajouter un nouveau ID de service bouton
    2. Sélectionnez Servcice IDs et cliquez Continue

      Option de sélection des identifiants de services
    3. Entrez une description et des identifiants et cliquez Continuie.

      En saisissant les détails de l'ID de service
    4. Veuillez vérifier les détails et cliquez sur Register

      Confirmation de l'enregistrement de l'ID de service
    5. Cliquez sur le service créé récemment

      Sélectionner l'ID de service créé récemment
    6. Activer l'option Sign in with Apple L'option d'activation

      Activer l'authentification avec Apple pour l'ID de service
    7. Configurer le Sign In with Apple

      Configurer le bouton d'authentification avec Apple
    8. Assurez-vous que Primary App ID est défini sur l'ID d'application configuré dans l'étape précédente

      Menu déroulant de l'ID d'application principal
    9. Ajoutez le domaine sur lequel vous allez héberger votre backend.

      Champs de domaine et de URL de retour
    10. Confirmer les données et cliquez Done

      Confirmation de domaine et configuration de l'URL de retour
    11. Cliquez sur Continue

      Bouton Continue pour la configuration du service
    12. Cliquez sur Save

      Bouton Enregistrer pour la configuration du service
  1. Retourner à tous All Identifiers

    Tous les Identifiants bouton de navigation
  2. Cliquez sur Keys

    Section des clés dans le Portail du développeur Apple
  3. Cliquez sur l'icône plus

    Ajouter une nouvelle clé
  4. Nommez votre clé

    Champ de saisie du nom de clé
  5. Sélectionnez Sign in with Apple et cliquez Configure

    Activer et configurer Sign in with Apple pour la clé
  6. Sélectionnez l'ID d'application principal, et appuyez Save

    Sélectionner l'ID d'application principal pour la clé
  7. Cliquez sur Continue

    Bouton Continue pour la configuration de la clé
  8. Cliquez sur Register

    Bouton Register pour la création de la clé
  9. Copiez l'ID de la clé et téléchargez la clé.

    Écran de l'ID de la clé et du bouton de téléchargement
  10. Trouvez le fichier clé téléchargé et enregistrez-le dans le dossier arrière-plan.

    Fichier clé téléchargé

Pour utiliser Login with Apple sur Android, vous devez obtenir le Team ID Il sera utilisé dans l'arrière-plan.

  1. Allez à ce site web et descendre

  2. Trouvez le Team ID

    L'emplacement de l'ID d'équipe dans le compte d'utilisateur

Comme vous l'avez vu dans le diagramme, le serveur effectue une étape appelée Redirect back to the app. Cela nécessite des modifications manuelles de votre application.

  1. Modifier le AndroidManifest.xml
    1. Ouvrez le fichier, je vais utiliser AndroidStudio

      Fichier AndroidManifest.xml dans Android Studio
    2. Trouvez le MainActivity et ajoutez le filtre d'intention suivant

      Filtre d'intention code pour ajouter dans 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. Modifier le MainActivity
    1. Veuillez ouvrir le MainActivity

      fichier MainActivity.java dans Android Studio
    2. Ajoutez les éléments suivants code:

      Code à ajouter à MainActivity pour gérer les liens profonds
      @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);
      }

Un backend est requis pour Android, mais la configuration d'un backend affectera également l'IOS. Un exemple de backend est fourni Ici

Cet exemple fournit les éléments suivants :

  • A simple JSON database
  • Une façon de demander le JWT auprès des serveurs d'Apple
  • A simple JWT verification

Étant donné tout ce que j'ai dit dans ce tutoriel, voici comment cette section env se présenterait :

  • ANDROID_SERVICE_ID = ID de service
  • IOS_SERVICE_ID = ID d'application
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"
}

L'utilisation de la login fonction ne change pas, c'est la même chose que pour IOS. Veuillez consulter cette section pour plus d'informations. Cependant, la initialize méthode change un peu.

await SocialLogin.initialize({
apple: {
clientId: 'ee.forgr.io.ionic.starter.service2',
redirectUrl: 'https://appleloginvps.wcaleniewolny.me/login/callback'
}
})
  1. Si vous n'avez pas encore d'ID d'application, cliquez sur le bouton plus

    Bouton plus d'identification à ajouter
  2. Sélectionnez App IDs et cliquez sur continuer

    Sélectionner le type d'ID d'application
  3. Cliquez sur le type App et cliquez Continue

    Sélectionner le type d'application
  4. Entrez la description et l'ID d'application

    Entrer la description de l'application et l'ID de l'application
  5. Activer Sign with Apple capacité

    Activation de la capacité de connexion avec Apple
  6. Cliquez Continue

    Bouton Continuer pour l'enregistrement de l'application
  7. Confirmer les détails et cliquez Register

    Confirmation des détails d'enregistrement de l'application

Si vous utilisez L'authentification Apple sur Android pour planifier l'authentification et les flux de compte, connectez-le avec Utilisation de @capgo/capacitor-social-login pour la capacité native dans Utilisation de @capgo/capacitor-social-login, @capgo/capacitor-social-login pour le détail d'implémentation dans @capgo/capacitor-social-login, @capgo/capacitor-passkey pour le détail d'implémentation dans @capgo/capacitor-passkey, @capgo/capacitor-authentification biométrique native pour les détails d'implémentation dans @capgo/capacitor-authentification biométrique native, et Authentification à deux facteurs pour les détails d'implémentation dans Authentification à deux facteurs.