Apple login sur Android
Copiez un prompt de configuration incluant les étapes d'installation et le guide markdown complet pour ce plugin.
La connexion Apple sur Android est complexe. Apple ne propose aucun support officiel pour Sign in with Apple sur Android, la solution est donc un peu détournée.
Android utilise actuellement des onglets Chrome pour afficher un site OAuth2. Cette approche présente les défis suivants :
- Configuration difficile
- Un backend est requis
Comprendre le flux sur Android
Section intitulée « Comprendre le flux sur Android ».Utilisons un diagramme pour expliquer le flux sur Android :
flowchart TD
A("await SocialLogin.login()") -->|Handled in the plugin|B(Generate the login URL)
B --> |Pass the link| C(Open the Chrome browser)
C --> D(Wait for the user to login)
D --> |Apple redirects to your backend|E(Handle the data returned from Apple)
E --> F(Redirect back to the app)
F --> G(Return to JS)
Maintenant que vous connaissez les défis et le flux, commençons la configuration.
Création du service ID
Section intitulée « Création de l'ID de service »-
Connectez-vous au Portail Apple Developer.
-
Cliquez sur
Identifiers.
Vous devriez voir un écran semblable à celui-ci :
- Vérifiez que ce champ indique
App IDs - Assurez-vous de pouvoir trouver votre App ID.
- Vérifiez que ce champ indique
-
Assurez-vous que la
Sign in with Applecapability est activée pour votre application- Cliquez sur votre application
- Vérifiez que la
Sign in with Applecapability est activée
- Si elle n'est pas activée, activez-la.
- Cliquez sur votre application
-
Retournez à tous les
All Identifiers
-
Cliquez sur
App Idset allez dansServices IDs
-
Créer un nouvel identifiant
-
Cliquer sur le bouton plus
-
Sélectionnez
Servcice IDset cliquez surContinue
-
Saisir une description et un identifiant, puis valider
Continuie.
-
Veuillez vérifier les détails et cliquer
Register
-
Cliquez sur le service nouvellement créé
-
Activer le
Sign in with Appleoption
-
Configurez la
Sign In with Apple
-
Assurez-vous que le
Primary App IDest configuré sur l'App ID défini à l'étape précédente
-
Ajoutez le domaine sur lequel vous allez héberger votre backend.
-
Confirmez les données et cliquez sur
Done
-
Cliquez sur
Continue
-
Cliquez sur
Save
-
Création de la clé
Section intitulée « Création de la clé »-
Retour à tout
All Identifiers
-
Cliquez sur
Keys
-
Cliquez sur l'icône plus
-
Nommez votre clé
-
Sélectionnez
Sign in with Appleet cliquez surConfigure
-
Sélectionnez l'App ID principal, puis appuyez sur
Save
-
Cliquez sur
Continue
-
Cliquez sur
Register
-
Copiez l'ID de la clé et téléchargez la clé.
-
Retrouvez la clé téléchargée et enregistrez-la dans le dossier backend.
Récupération du Team ID
Section intitulée « Obtenir le Team ID »Pour utiliser Login with Apple sur Android, vous devez récupérer le Team ID. Il sera utilisé dans le backend.
-
Accéder à ce site web et faire défiler vers le bas
-
Trouvez le
Team ID
Configuration de la redirection de l'app
Section intitulée « Configurer la redirection de l'app »Comme vous l'avez vu sur le diagramme, le backend effectue une étape appelée Redirect back to the app. Cela nécessite des modifications manuelles dans votre app.
- Modifiez le
AndroidManifest.xml-
Ouvrez le fichier, j'utiliserai
AndroidStudio
-
Trouvez le
MainActivityet ajoutez le filtre Intent suivant
<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>
-
- Modifiez le
MainActivity-
Veuillez ouvrir la
MainActivity
-
Ajoutez le code suivant :
@Overrideprotected 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);}
-
Configuration du backend
Section intitulée « Configuration backend »Un backend est requis pour Android, mais sa configuration impactera aussi iOS. Un exemple de backend est fourni ici
Cet exemple fournit les éléments suivants :
- Une base de données JSON simple
- Un moyen de demander le JWT aux serveurs d'Apple
- Une vérification JWT simple
Compte tenu de tout ce que j'ai expliqué dans ce tutoriel, voici comment env la section ressemblerait à ceci :
ANDROID_SERVICE_ID= Service IDIOS_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"}En utilisant le plugin
Section intitulée « Utiliser le plugin »L'utilisation de la login fonction ne change pas, c'est la même que sur iOS. Consultez cette section pour plus d'infos. Cependant,, les initialize la méthode change légèrement.
await SocialLogin.initialize({ apple: { clientId: 'ee.forgr.io.ionic.starter.service2', redirectUrl: 'https://appleloginvps.wcaleniewolny.me/login/callback' }})Création de l'app
Section intitulée « Créer l'application »-
Si vous n'avez pas encore d'App ID, cliquez sur le bouton plus
-
Sélectionnez
App IDset cliquez sur continue
-
Cliquez sur le type
Appet cliquez surContinue
-
Saisissez la description et l'ID de l'app
-
Activer
Sign with Applecapacité
-
Cliquez
Continue
-
Confirmez les détails et cliquez
Register
Continuer avec le login Apple sur Android
Section intitulée « Continuer après la connexion Apple sur Android »Si vous utilisez Apple login sur Android pour planifier les flux d'authentification et de compte, le connecter à Utiliser @capgo/capacitor-social-login pour la capacité native dans Utiliser @capgo/capacitor-social-login @capgo/capacitor-social-login pour les détails d'implémentation dans @capgo/capacitor-social-login @capgo/capacitor-passkey pour les détails d'implémentation dans @capgo/capacitor-passkey @capgo/capacitor-native-biometric pour les détails d'implémentation dans @capgo/capacitor-native-biometric, et Authentification à deux facteurs pour les détails d'implémentation de l'authentification à deux facteurs.