Authentifier les utilisateurs avec Google Sign-In OAuth 2.0 dans Xamarin.Android
Considérez n’importe quelle plate-forme de médias sociaux, créer un compte signifie faire naître un nouvel utilisateur. L’authentification sert à plusieurs fins de cette façon. Cela peut permettre à un utilisateur d’interagir avec l’autre à l’aide des coordonnées principales qu’ils ont fournies, ou il peut informer les utilisateurs des derniers développements associés à votre produit et d’autres routines similaires comme fournir un couche de sécurité pour utiliser l’application.
OAuth 2.0 est le protocole standard de l’industrie pour l’autorisation d’intégration avec des services non seulement limités aux appareils mobiles. Outre l’authentification, le cadre OAuth offre une protection aux secrets clients contre les attaquants tout en empêchant les modifications du secret client et en lançant des applications externes.
Commutateur
Une expérience utilisateur optimale devrait présenter trois cas de base à l’utilisateur, à savoir:
- Se connecter
La connexion à Google doit être configurée de manière à demander les données utilisateur requises par votre application et à vérifier si l’utilisateur s’est déjà connecté.
- Déconnexion
Autorisez l’utilisateur à se déconnecter de l’application qui le déconnecte temporairement et peut se reconnecter ultérieurement à l’aide d’un compte différent de la plate-forme Google.
- Déconnecter
Votre application doit fournir un moyen de supprimer un utilisateur existant et de fermer définitivement le compte associé.
Intégrez la plateforme Google Identity en configurant le projet Google API Console.
Accédez à la section Configurer le projet et cliquez sur le bouton pour qu’une boîte de dialogue apparaisse et vous invite à ajouter un projet. Pour ajouter votre projet à la console API Google, le nom du package de l’application et le certificat de signature SHA-1 seront requis. Le nom du package de l’application se trouve dans Visual Studio, sous la solution Android dans le fichier AndroidManifest.xml et marquez la ligne suivante dans le manifeste:
Signature du magasin de clés
C: Utilisateurs NOM D’UTILISATEUR AppData Local Xamarin Mono pour Android debug.keystore
Ajoutez ceci à la variable de chemin en tant que variable d’environnement afin que la commande keytool.exe puisse être reconnue sur la ligne de commande et puisse être utilisée pour émettre un certificat de signature.
Les versions de débogage et de version peuvent être configurées dans les propriétés du projet. Nous travaillerons avec la version de débogage de cette application.
Le certificat de signature SHA-1 peut maintenant être obtenu en exécutant la commande suivante dans cmd-
La sortie devrait ressembler à ceci:
Copiez et collez la valeur SHA1 comme champ obligatoire dans la boîte de dialogue Configurer le projet et le projet est configuré pour utiliser la plate-forme de connexion Google après l’étape suivante.
Obtenez l’ID client OAuth 2.0 du serveur principal
Pour authentifier un utilisateur, nous avons besoin d’un service backend pour accéder à l’API Google. Firebase sera utilisé à cette fin comme interface entre notre application et l’API Google pour la connexion afin de gérer et de stocker facilement l’identifiant unique d’un utilisateur et d’autres détails tels que l’adresse e-mail.
- Ouvrez le Page d’informations d’identification dans la console API.
- le application Web type ID client est l’ID client OAuth 2.0 de votre serveur principal.
- Collez l’ID dans le fichier strings.xml
Ajouter Firebase à Xamarin.Android Project
Accédez à la console et ajoutez votre projet à la console Firebase. Téléchargez la dernière
google-services.json fichier situé sous les paramètres du projet et l’application que nous venons d’ajouter. Téléchargez ce fichier et copiez-collez-le dans le dossier racine de la solution et effectuez un nettoyage et une reconstruction. Fermez Visual Studio et chargez à nouveau le projet pour autoriser les modifications. Google Firebase est prêt à être intégré à notre application.
Installer les bibliothèques de support Xamarin et Android
En utilisant le NuGet PM>
Installer les services Google Play et le service Firebase
En utilisant le Nuget PM>
Activez la méthode de connexion Google pour le projet Firebase sur votre console sous l’option Authentification> Méthodes de connexion.
Comprendre le flux
Créer une classe qui fournit une instance du résultat renvoyé par GoogleSignInResult à l’activité
Créez une autre classe qui communique avec l’activité pour mettre à jour l’interface utilisateur après qu’un utilisateur s’est déconnecté pour réinitialiser le flux.
À l’intérieur MainActivity.cs , la classe MainActivity doit hériter et implémenter la classe et les interfaces suivantes
Dans MainActivity, créez une méthode pour permettre à l’utilisateur d’accéder à l’application avec une connexion qui répond aux clics sur le bouton.
Les boutons de déconnexion et de déconnexion ne seront pas visibles par l’utilisateur tant qu’il ne se sera pas connecté.
Créer une méthode de connexion qui démarre le flux de connexion
La même chose doit être faite pour les deux autres choix pour compléter le flux.
Ajoutez le code restant à la classe MainActivity pour gérer le flux qui permet à GoogleSignInOptions d’accepter les options de compte d’utilisateur et de créer un GoogleApiClient avec les options spécifiées qui communique avec GoogleSignInApi, puis de fournir enfin l’instance de GoogleSignInResult au gestionnaire approprié.
Si l’utilisateur utilise l’application pour la première fois, la connexion à Google l’invitera à saisir l’identifiant et le mot de passe de son compte Google associé avec lequel l’utilisateur souhaite continuer à utiliser l’application.
Une fois le processus de connexion terminé, en fonction de votre logique métier, d’autres fonctionnalités peuvent être ajoutées à l’application pour suivre l’écran de connexion et fournir l’option de déconnexion de l’application.