Inscription et Connexion Utilisateurs sur Android avec Parse
18 min
tutoriel de connexion et d'enregistrement des utilisateurs introduction dans cette section, nous allons examiner comment créer une application avec un enregistrement utilisateur simple en utilisant les fonctionnalités principales de parse server https //www back4app com/product/parse server via back4app ce tutoriel utilise une application de base créée dans android studio 4 1 1 avec \<font color="#2166ae">buildtoolsversion=30 0 2\</font> , \<font color="#2166ae">compile sdk version = 30 0 2\</font> et \<font color="#2166ae">targetsdkversion 30\</font> à tout moment, vous pouvez accéder au projet android complet construit avec ce tutoriel sur nos dépôts github dépôt d'exemple kotlin https //github com/templates back4app/android parse sdk kotlin dépôt d'exemple java https //github com/templates back4app/android parse sdk java objectif nous allons apprendre comment se connecter et s'enregistrer en utilisant parse voici un aperçu de ce que nous allons réaliser prérequis pour compléter ce tutoriel, nous avons besoin de android studio https //developer android com/studio/index html une application créée sur back4app remarque suivez le tutoriel de nouvelle application parse https //www back4app com/docs/get started/new parse app pour apprendre à créer une application parse sur back4app une application android connectée à back4app remarque suivez le tutoriel d'installation du sdk parse https //www back4app com/docs/android/parse android sdk pour créer un projet android studio connecté à back4app un appareil (ou appareil virtuel https //developer android com/studio/run/managing avds html ) fonctionnant sous android 4 1 (jelly bean) ou version ultérieure 1 importer la bibliothèque dans cette étape, nous allons importer les bibliothèques que nous allons utiliser dans notre projet nous allons ajouter les classes parse suivantes à nos activités 1 import com parse parse ; 2 import com parse parseexception ; 3 import com parse parseuser ; 2\ nous utiliserons fréquemment des fonctions lambda dans notre projet, c'est pourquoi nous devons ajouter java 1 8 à notre projet via build gradle(module\ app) 1 compileoptions { 2 sourcecompatibility javaversion version 1 8 3 targetcompatibility javaversion version 1 8 4 } 2 inscription s'inscrire crée essentiellement un nouvel objet parse user dans la classe user, affiché comme “user” dans votre application \<font color="#2166ae">tableau de bord\</font> nous devons définir au moins deux propriétés lors de la création d'un nouvel utilisateur => \<font color="#2166ae">parseuser setusername()\</font> et \<font color="#2166ae">parseuser setpassword()\</font> la méthode utilisée pour enregistrer le nouvel utilisateur sur android est \<font color="#2166ae">parseuser signupinbackground()\</font> , qui peut être accompagnée d'une fonction de rappel remarque les objets de cette classe spéciale ne sont pas enregistrés sur le \<font color="#2166ae">tableau de bord\</font> avec \<font color="#2166ae">parseobject save()\</font> méthode pour faire fonctionner \<font color="#2166ae">signupactivity\</font> , suivez ces étapes importer 1 importer com parse signupcallback ; dans votre \<font color="#2166ae">signupactivity\</font> , en plus des dépendances importées dans étape 1 2\ pour implémenter l'enregistrement des utilisateurs, utilisez simplement le code suivant dans le \<font color="#2166ae">oncreate()\</font> méthode 1 parseuser user = new parseuser(); 2 // set the user's username and password, which can be obtained by a forms 3 user setusername( "\<your username here>"); 4 user setpassword( "\<your password here>"); 5 user signupinbackground(new signupcallback() { 6 @override 7 public void done(parseexception e) { 8 if (e == null) { 9 showalert("successful sign up!", "welcome" + "\<your username here>" +"!"); 10 } else { 11 parseuser logout(); 12 toast maketext(signupactivity this, e getmessage(), toast length long) show(); 13 } 14 } 15 });1 val user = parseuser(); 2 // set the user's username and password, which can be obtained by a forms 3 user setusername("\<your username here>"); 4 user setpassword("\<your password here>"); 5 user signupinbackground(signupcallback() { 6 if (it == null) { 7 showalert("successful sign up!", "welcome" + "\<your username here>" + "!"); 8 } else { 9 parseuser logout(); 10 toast maketext(this, it message, toast length long) show(); 11 } 12 }); dans le projet exemple, ce code est placé à l'intérieur d'un \<font color="#2166ae">inscription\</font> callback de bouton de plus, le nom d'utilisateur et le mot de passe sont récupérés en utilisant modifier les textes 3\ il est intéressant d'ajouter une méthode supplémentaire pour afficher des alert dialogs et rendre le processus plus professionnel la méthode ci dessous le fait 1 private void showalert(string title,string message){ 2 alertdialog builder builder = new alertdialog builder(signupactivity this) 3 settitle(title) 4 setmessage(message) 5 setpositivebutton("ok", new dialoginterface onclicklistener() { 6 @override 7 public void onclick(dialoginterface dialog, int which) { 8 dialog cancel(); 9 // don't forget to change the line below with the names of your activities 10 intent intent = new intent(signupactivity this, logoutactivity class); 11 intent addflags(intent flag activity clear task | intent flag activity new task); 12 startactivity(intent); 13 } 14 }); 15 alertdialog ok = builder create(); 16 ok show(); 17 }1 private fun showalert(title string, message string) { 2 val builder = alertdialog builder(this) 3 settitle(title) 4 setmessage(message) 5 setpositivebutton("ok") { dialog, which > 6 dialog cancel() 7 // don't forget to change the line below with the names of your activities 8 val intent = intent(this, logoutactivity class java) 9 intent addflags(intent flag activity clear task or intent flag activity new task) 10 startactivity(intent) 11 } 12 val ok = builder create() 13 ok show() 14 } 3 se connecter se connecter crée un objet session, qui pointe vers l'utilisateur connecté si la connexion est réussie, \<font color="#2166ae">parseuser getcurrentuser()\</font> renvoie un objet utilisateur, et un objet session qui a été créé dans le \<font color="#2166ae">tableau de bord\</font> sinon, si le nom d'utilisateur cible n'existe pas, ou si le mot de passe est incorrect, cela renvoie null la méthode utilisée pour effectuer l'action de connexion est \<font color="#2166ae">parseuser logininbackground()\</font> , qui nécessite autant d'arguments que les chaînes de nom d'utilisateur et de mot de passe, et peut appeler une fonction de rappel remarque après l'inscription, la connexion est effectuée automatiquement pour faire fonctionner \<font color="#2166ae">loginactivity\</font> , suivez ces étapes importez dans votre \<font color="#2166ae">loginactivity\</font> , en plus des dépendances importées dans le étape 1 1 import com parse logincallback ; 2\ pour implémenter la fonction de connexion utilisateur, utilisez simplement le code 1 private void login(string username, string password) { 2 progressdialog show(); 3 parseuser logininbackground(username, password, (parseuser, e) > { 4 progressdialog dismiss(); 5 if (parseuser != null) { 6 showalert("successful login", "welcome back " + username + " !"); 7 } else { 8 parseuser logout(); 9 toast maketext(loginactivity this, e getmessage(), toast length long) show(); 10 } 11 }); 12 }1 fun login(username string, password string) { 2 progressdialog? show() 3 parseuser logininbackground(username,password) { parseuser parseuser?, parseexception parseexception? > 4 progressdialog? dismiss() 5 if (parseuser != null) { 6 showalert("successful login", "welcome back " + username + " !") 7 } else { 8 parseuser logout() 9 if (parseexception != null) { 10 toast maketext(this, parseexception message, toast length long) show() 11 } 12 } 13 } 14 } dans le projet exemple, ce code est placé à l'intérieur d'un \<font color="#2166ae">log in\</font> rappel de bouton de plus, le nom d'utilisateur et le mot de passe sont récupérés à l'aide de edit texts la méthode \<font color="#2166ae">showalert\</font> est la même que celle que vous avez ajoutée dans le \<font color="#2166ae">signupactivity\</font> , n'oubliez pas de changer ses \<font color="#2166ae">intent\</font> arguments cependant 4 se déconnecter se déconnecter supprime l'objet session actif pour l'utilisateur connecté la méthode utilisée pour se déconnecter est \<font color="#2166ae">parseuser logoutinbackground()\</font> pour implémenter la déconnexion de l'utilisateur, utilisez simplement le code ci dessous, dans le \<font color="#2166ae">logoutactivity\</font> 1 parseuser logoutinbackground(e > { 2 progressdialog dismiss(); 3 if (e == null) 4 showalert("so, you're going ", "ok bye bye then"); 5 });1 fun login(username string, password string) { 2 progressdialog? show() 3 parseuser logininbackground(username,password) { parseuser parseuser?, parseexception parseexception? > 4 progressdialog? dismiss() 5 if (parseuser != null) { 6 showalert("successful login", "welcome back " + username + " !") 7 } else { 8 parseuser logout() 9 if (parseexception != null) { 10 toast maketext(this, parseexception message, toast length long) show() 11 } 12 } 13 } 14 } dans le projet exemple, ce code est placé à l'intérieur d'un \<font color="#2166ae">bouton de déconnexion\</font> callback la méthode \<font color="#2166ae">showalert\</font> est la même que celle que vous avez ajoutée dans le \<font color="#2166ae">loginactivity\</font> et \<font color="#2166ae">signupactivity\</font> , n'oubliez pas de changer ses \<font color="#2166ae">arguments intent\</font> 5 testez votre application exécutez votre application et créez quelques utilisateurs, essayez également de vous reconnecter après les avoir enregistrés connectez vous à site web de back4app https //www back4app com/ trouvez votre application et cliquez sur \<font color="#2166ae">tableau de bord\</font> > \<font color="#2166ae">noyau\</font> > \<font color="#2166ae">navigateur\</font> > \<font color="#2166ae">utilisateur\</font> à ce stade, vous devriez voir vos utilisateurs comme affiché ci dessous remarque en utilisant les codes affichés ci dessus, chaque fois que vous vous connectez avec un utilisateur, une \<font color="#2166ae">session\</font> est ouverte dans votre \<font color="#2166ae">tableau de bord\</font> , mais lorsque l'utilisateur se déconnecte, cette \<font color="#2166ae">session\</font> se termine de plus, chaque fois qu'une tentative de connexion ou d'inscription échoue, la \<font color="#2166ae">session\</font> ouverte dans le serveur parse \<font color="#2166ae">tableau de bord\</font> est supprimée c'est fait ! félicitations ! maintenant, vous pouvez vous connecter, vous inscrire ou vous déconnecter de votre application en utilisant les fonctionnalités de base de parse server via back4app !