Google Login sur Android
Copiez un prompt de configuration avec les étapes d'installation et la guide markdown complet pour ce plugin.
Introduction
Section intitulée « Introduction »Dans ce guide, vous apprendrez à configurer l'authentification Google avec Capgo Social Login pour Android. Je suppose que vous avez déjà lu le guide de configuration général.
Utilisation de l'authentification Google sur Android
Titre de la section : « Utilisation de la connexion Google sur Android »Dans cette partie, vous apprendrez à configurer la connexion Google sur Android.
-
Créer un identifiant de client Android.
-
Cliquez sur la barre de recherche
-
Recherchez
credentialset cliquez sur leAPIs and Servicesun (le numéro 2 sur l'écran d'aperçu)
-
Cliquez sur le
create credentials
-
Sélectionnez
OAuth client ID
-
Sélectionnez le
AndroidType d'application
-
Ouvrez Android Studio
-
À la base de la barre de navigation, trouvez la
Gradle Scripts
-
Trouvez
build.gradlepour le moduleapp
-
Copiez le
android.defaultConfig.applicationIdCela sera votrepackage namedans le console Google
-
Ouvrez maintenant le terminal. Assurez-vous d'être dans le
androiddossier de votre application et exécutez./gradlew signInReport
- Rendez-vous en haut de cette commande. Vous devriez voir les éléments suivants. Copiez le
SHA1.
- Retournez maintenant dans la Console Google. Entrez votre
applicationIdcommePackage Nameet votre SHA1 dans le champ de certificat et cliquezcreate
-
-
Créez un client web (c'est requis pour Android)
-
Allez à la
Create credentialspage dans le Console Google -
Fixez le type d'application sur
Web
-
Cliquez sur
Create
-
Copiez l'ID du client, vous en aurez besoin comme le
webClientIddans votre JS/TS code
-
-
Modifiez votre
MainActivity-
Veuillez ouvrir votre application dans Android Studio. Vous pouvez l'exécuter
cap open android -
Trouvez
MainActivity.java-
Ouvrez le
appdossier
-
Trouvez
java
-
Trouvez votre
MainActivity.javaet cliquez dessus
-
-
Modifiez
MainActivity.java. Veuillez ajouter les informations suivantes codeimport ee.forgr.capacitor.social.login.GoogleProvider;import ee.forgr.capacitor.social.login.SocialLoginPlugin;import ee.forgr.capacitor.social.login.ModifiedMainActivityForSocialLoginPlugin;import com.getcapacitor.PluginHandle;import com.getcapacitor.Plugin;import android.content.Intent;import android.util.Log;import com.getcapacitor.BridgeActivity;// ModifiedMainActivityForSocialLoginPlugin is VERY VERY important !!!!!!public class MainActivity extends BridgeActivity implements ModifiedMainActivityForSocialLoginPlugin {@Overridepublic void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (requestCode >= GoogleProvider.REQUEST_AUTHORIZE_GOOGLE_MIN && requestCode < GoogleProvider.REQUEST_AUTHORIZE_GOOGLE_MAX) {PluginHandle pluginHandle = getBridge().getPlugin("SocialLogin");if (pluginHandle == null) {Log.i("Google Activity Result", "SocialLogin login handle is null");return;}Plugin plugin = pluginHandle.getInstance();if (!(plugin instanceof SocialLoginPlugin)) {Log.i("Google Activity Result", "SocialLogin plugin instance is not SocialLoginPlugin");return;}((SocialLoginPlugin) plugin).handleGoogleLoginIntent(requestCode, data);}}// This function will never be called, leave it empty@Overridepublic void IHaveModifiedTheMainActivityForTheUseWithSocialLoginPlugin() {}} -
Enregistrer le fichier
-
-
Utilisez l'authentification Google dans votre application
-
Tout d'abord, importez
SocialLoginimport { SocialLogin } from '@capgo/capacitor-social-login'; -
Appeler initialize. Cela doit être appelé qu'une seule fois.
// onMounted is Vue specific// webClientId is the client ID you got in the web client creation step not the android client ID.onMounted(() => {SocialLogin.initialize({google: {webClientId: '673324426943-avl4v9ubdas7a0u7igf7in03pdj1dkmg.apps.googleusercontent.com',}})}) -
Appeler
SocialLogin.login. Create a button and run the following code on click.const res = await SocialLogin.login({provider: 'google',options: {}})// handle the responseconsole.log(JSON.stringify(res))
-
-
Allez dans
-
et cliquez sur le bouton plus
Device managerGestionnaire de dispositifs dans Android Studio avec le bouton plus mis en surbrillance
-
Bouton Créer un appareil virtuel dans la configuration de l'appareil virtuel
-
un
Play Storeicône
Comme vous pouvez le voir, le
pixel 8supporte lesPlay Storeservices -
Cliquez
next
-
Assurez-vous que l'image du système est de type
Google Play. CE DOIT doit être de typeGoogle Play
-
Cliquez sur Suivant
-
Veuillez confirmer votre appareil. Vous pouvez nommer votre émulateur comme vous le souhaitez
-
Allez dans
Device Manageret démarrez votre simulateur
-
Après le démarrage de l'émulateur, allez dans ses paramètres
-
Allez dans
Google Play
- Cliquez
Updateet attendez environ 60 secondes
-
-
Testez votre application
Si vous avez fait tout correctement, vous devriez voir le flux de connexion Google fonctionner correctement :
Résolution des problèmes
Section intitulée « Résolution des problèmes »Si vous rencontrez des problèmes, comparez d'abord vos paramètres d'application avec les valeurs du console Google Cloud. Les échecs de connexion Google Sign-In sur Android sont généralement causés par une incompatibilité de nom de package, de SHA-1 ou d'ID client.
Gestionnaire de jetons, SHA-1 et Firebase
Section intitulée « Gestionnaire de jetons, SHA-1 et Firebase »Sur Android, ce plugin utilise le Gestionnaire de jetons Google (androidx.credentials et Se connecter avec Google), et non le legacy GoogleSignInClient API. Erreurs de Logcat telles que GetCredentialCustomException: [28444] Developer console is not set up correctly vient de cette pile.
Filtrer Logcat avec GoogleProvider ou CapgoSocialLogin ou webClientId ou
ou
ouou
| ou | ou | ou |
|---|---|---|
| ou | Serveur / ID jeton audience | webClientId in SocialLogin.initialize() |
| Android, un par clé de signature | Prouve que votre APK est autorisé à appeler Google | Seul Google Cloud Console. N'envoyez pas cet ID à webClientId |
Une erreur commune est d'utiliser l'ID client Android comme webClientId. Le Gestionnaire de jetons nécessite l'ID client Web là-bas. L'ID client Android n'a besoin que du nom de package correct et de la SHA-1 enregistrés dans le console.
Créez un client OAuth Android pour chaque certificat qui signe les builds que vous testez :
- Debug : à partir de
./gradlew signingReportpour la variante de débogage. - Release : à partir de l'APK ou AAB que vous installez réellement.
- Play App Signing : à partir de Play Console > Intégrité de l'application > Certificat de clé de signature de l'application. Cela est requis pour les builds de Magasin Play même si votre SHA-1 de clé d'envoi est déjà enregistré.
Le applicationId dans android/app/build.gradle doit exactement correspondre au nom de package Android OAuth client, y compris tout suffixe. .debug Si l'écran de consentement OAuth est en mode Test, ajoutez tous les comptes Google que vous testez sous Utilisateurs > Test.
et email les profile lesassetlinks.jsonles
les
les
lesles webClientId. Travaillez à travers ce checklist :
- Confirmer
webClientIdest l'ID du client de l'application Web et se termine par.apps.googleusercontent.com. - Exécutez l'application, reproduisez l'erreur et lisez Logcat pour
GoogleProvider,signingSha1=, etpackage=. - Dans Google Cloud Console > Identifiants, ouvrez votre client OAuth Android et vérifiez le nom de package exact et le SHA-1.
- Si vous testez une version de production, enregistrez le SHA-1 de cette version, et non uniquement le keystore de débogage.
- Si l'application est distribuée par la Play Store, enregistrez également le SHA-1 de signature d'application Play.
- Assurez-vous que les clients Web et Android vivent dans le même projet Google Cloud.
- Si l'écran de consentement est en mode Test, confirmez que le compte Google est un utilisateur de test.
- Attendez et réessayez après les modifications du console.
USER_CANCELLED Après avoir sélectionné un compte sur une mise en page de débogage mal configurée, il peut toujours s'agir d'une incompatibilité de SHA-1 ou d'un ID client. Fixez d'abord la configuration du console.
Extraire la SHA-1 de l'installation que vous utilisez.
Section intitulée « Extraire la SHA-1 de l'installation que vous utilisez »Builds de débogage ou locaux :
cd android && ./gradlew signingReportAPK de signature de mise en production :
keytool -printcert -jarfile android/app/release/app-release.apkAjoutez cette SHA-1 à un client OAuth Android avec le nom de package correspondant, réinstallez le même APK signé et testez à nouveau :
adb install android/app/release/app-release.apkLecture du résultat de connexion
Section intitulée « Lecture du résultat de connexion »Les jetons sont encapsulés sous result:
const login = await SocialLogin.login({ provider: 'google' });const idToken = login.result?.idToken;Pour Firebase Auth, créez des informations d'identification avec cela idToken et utilisez l'ID client Web comme webClientId en initialize.
Si vous ne pouvez pas obtenir le certificat SHA-1 de développement, essayez un keystore personnalisé. Ce commentaire d'issue explique comment ajouter un keystore à votre projet.
Continuez de la page Google Login sur Android
Section intitulée « Continuez à partir de l'authentification Google sur Android »Si vous utilisez l'authentification Google sur Android pour planifier l'authentification et les flux de compte, connectez-l’à En utilisant @capgo/capacitor-social-login pour la capacité native en utilisant @capgo/capacitor-social-login @capgo/capacitor-social-login pour le détail d'implémentation en @capgo/capacitor-social-login @capgo/capacitor-passkey pour le détail d'implémentation en @capgo/capacitor-passkey @capgo/capacitor-native-biometric pour le détail d'implémentation en @capgo/capacitor-native-biometric, et Authentification à deux facteurs pour les détails d'implémentation de l'authentification à deux facteurs.