Connexion Apple sur Android
Copiez une commande de configuration avec les étapes d'installation et le guide Markdown complet pour ce plugin.
L'authentification Apple sur Android est un peu hacky. Apple n'a pas de support officiel pour Sign in with Apple L'approche actuelle d'Android utilise une fenêtre de Chrome pour afficher un site Web OAuth2. Cette approche présente les défis :
Cette approche présente les défis :
- Configuration difficile
- Un backend est requis
Comprendre le flux sur Android.
Section intitulée “Comprendre le flux sur Android.”Je vais utiliser 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 êtes conscient des défis et du flux, commençons la configuration.
Création de l'ID de service
Section intitulée “Création de l'ID de service”-
Se connecter à Portail du développeur Apple.
-
Cliquez sur
Identifiers.
Vous devriez voir une page qui ressemble à ceci :
- Assurez-vous que ce champ dit
App IDs - Vérifiez que vous pouvez trouver votre ID d'application.
- Assurez-vous que ce champ dit
-
capacité est activé pour votre application
Sign in with AppleNote- Cliquez sur votre application
- Vérifiez que la
Sign in with Applecapacité est activée
- Si elle n'est pas activée, activez-la.
- Cliquez sur votre application
-
Retournez à tous
All Identifiers
-
Cliquez sur
App Idset allez àServices IDs
-
Créez un nouveau identifiant
-
Cliquez sur le bouton plus
-
Sélectionner
Servcice IDset cliquezContinue
-
Entrez une description et des identifiants et cliquez
Continuie.
-
Veuillez vérifier les détails et cliquez sur
Register
-
Cliquez sur le service créé récemment
-
Activer l'option
Sign in with Appleoption
-
Configurer la
Sign In with Apple
-
Vérifiez que l'option est définie sur l'ID d'application configuré dans l'étape précédente
Primary App IDDéfinir le menu déroulant ID d'application principal
-
Définir les champs domaine et URL de retour
-
Confirmation de la configuration de domaine et d'URL de retour
Done
-
Bouton Continue pour la configuration du service
Continue
-
Continuer
Save
-
Création de la clé
Section intitulée “Création de la clé”-
Retour à tous
All Identifiers
-
Cliquez sur
Keys
-
Cliquez sur l'icône plus
-
Nommez votre clé
-
Sélectionner
Sign in with Appleet cliquerConfigure
-
Sélectionner l'ID d'application principal, et appuyer sur
Save
-
Cliquez sur
Continue
-
Cliquez sur
Register
-
Copiez l'ID de la clé et téléchargez la clé.
-
Trouvez le fichier téléchargé et enregistrez-le dans le dossier du backend.
Récupération de l'ID d'équipe
Section intitulée « Récupérer l'ID de l'équipe »Pour utiliser Login with Apple sur Android, vous devez récupérer le Team IDIl sera utilisé dans le backend.
-
Allez sur ce site web et faites défiler vers le bas
-
Trouvez la
Team ID
Configuration de la redirection de l'application
Section intitulée « Configuration de la redirection de l'application »Comme vous avez vu dans le diagramme, le backend effectue une étape appelée Redirect back to the appCela nécessite des modifications manuelles de votre application.
- Modifier le
AndroidManifest.xml-
Ouvrez le fichier, je vais utiliser
AndroidStudio
-
Trouvez le
MainActivityet ajoutez le filtre d'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>
-
- Modifier le
MainActivity-
Veuillez ouvrir
MainActivity
-
Ajoutez le code:
@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 du backend »Un backend est requis pour Android, mais la configuration d'un backend impactera également IOS. Un exemple de backend est fourni ici
Cet exemple fournit les éléments suivants :
- Une base de données JSON simple
- Une façon de demander le JWT auprès des serveurs d'Apple
- Une vérification JWT simple
Étant donné tout ce que j'ai dit dans ce tutoriel, voici comment la env section ressemblerait :
ANDROID_SERVICE_ID= ID de serviceIOS_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"}En utilisant le plugin
Section intitulée “En utilisant le plugin”L'utilisation de la login fonction ne change pas, c'est la même chose que pour IOS. Veuillez jeter un coup d'œil à 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' }})Création de l'application
Section intitulée “Création de l'application”-
Si vous n'avez pas encore d'ID d'application, cliquez sur le bouton plus
-
Sélectionner
App IDsCliquez sur le type
-
Entrer la description et l'ID d'application
AppEntrer la description et l'ID de l'applicationContinue
-
Entrer la description et l'ID de l'application
-
Activer
Sign with Applecapacité
-
Cliquez
Continue
-
Confirmez les détails et cliquez sur
Register