Inicio de sesión y registro en Android con Parse Server
18 min
tutorial de inicio de sesión y registro de usuario introducción en esta sección veremos cómo crear una aplicación con un registro de usuario simple utilizando las características principales de parse server https //www back4app com/product/parse server a través de back4app este tutorial utiliza una aplicación básica creada en android studio 4 1 1 con \<font color="#2166ae">buildtoolsversion=30 0 2\</font> , \<font color="#2166ae">compile sdk version = 30 0 2\</font> y \<font color="#2166ae">targetsdkversion 30\</font> en cualquier momento, puedes acceder al proyecto completo de android construido con este tutorial en nuestros repositorios de github repositorio de ejemplo en kotlin https //github com/templates back4app/android parse sdk kotlin repositorio de ejemplo en java https //github com/templates back4app/android parse sdk java objetivo aprenderemos cómo iniciar sesión y registrarse utilizando parse aquí hay una vista previa de lo que vamos a lograr requisitos previos para completar este tutorial, necesitamos android studio https //developer android com/studio/index html una aplicación creada en back4app nota sigue el tutorial de nueva aplicación parse https //www back4app com/docs/get started/new parse app para aprender cómo crear una aplicación parse en back4app una aplicación de android conectada a back4app nota sigue el tutorial de instalación del sdk de parse https //www back4app com/docs/android/parse android sdk para crear un proyecto de android studio conectado a back4app un dispositivo (o dispositivo virtual https //developer android com/studio/run/managing avds html ) que ejecute android 4 1 (jelly bean) o más reciente 1 importar biblioteca en este paso importaremos las bibliotecas que vamos a usar en nuestro proyecto agregaremos las siguientes clases de parse a nuestras actividades 1 import com parse parse ; 2 import com parse parseexception ; 3 import com parse parseuser ; 2\ usaremos funciones lambda con frecuencia en nuestro proyecto, por lo que necesitamos agregar java 1 8 a nuestro proyecto a través de build gradle(module\ app) 1 compileoptions { 2 sourcecompatibility javaversion version 1 8 3 targetcompatibility javaversion version 1 8 4 } 2 registrarse registrarse básicamente crea un nuevo objeto parse user en la clase user, mostrado como “user” en tu aplicación \<font color="#2166ae">dashboard\</font> necesitamos establecer al menos dos propiedades al crear un nuevo usuario => \<font color="#2166ae">parseuser setusername()\</font> y \<font color="#2166ae">parseuser setpassword()\</font> el método utilizado para guardar el nuevo usuario en android es \<font color="#2166ae">parseuser signupinbackground()\</font> , que puede venir junto con una función de callback nota los objetos de esta clase especial no se guardan en el \<font color="#2166ae">dashboard\</font> con el método \<font color="#2166ae">parseobject save()\</font> para hacer \<font color="#2166ae">signupactivity\</font> funcionar, sigue estos pasos importar 1 import com parse signupcallback ; en tu \<font color="#2166ae">signupactivity\</font> , además de las dependencias importadas en paso 1 2\ para implementar el registro de usuarios, simplemente usa el siguiente código en el \<font color="#2166ae">oncreate()\</font> método 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 }); en el proyecto de ejemplo, este código se coloca dentro de un \<font color="#2166ae">registrarse\</font> callback de botón además, el nombre de usuario y la contraseña se obtienen usando editar textos 3\ es interesante agregar un método adicional para mostrar alert dialogs y hacer que el proceso se vea más profesional el método a continuación hace esto 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 iniciar sesión iniciar sesión crea un objeto session, que apunta al usuario que ha iniciado sesión si el inicio de sesión es exitoso, \<font color="#2166ae">parseuser getcurrentuser()\</font> devuelve un objeto user, y un objeto session que se creó en el \<font color="#2166ae">tablero\</font> de lo contrario, si el nombre de usuario objetivo no existe, o la contraseña es incorrecta, devuelve null el método utilizado para realizar la acción de inicio de sesión es \<font color="#2166ae">parseuser logininbackground()\</font> , que requiere tantos argumentos como las cadenas de nombre de usuario y contraseña, y puede llamar a una función de callback nota después de registrarse, el inicio de sesión se realiza automáticamente para hacer \<font color="#2166ae">loginactivity\</font> funcionar, sigue estos pasos importa en tu \<font color="#2166ae">loginactivity\</font> , además de las dependencias importadas en el paso 1 1 import com parse logincallback ; 2\ para implementar la función de inicio de sesión de usuario, simplemente usa el código 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 } en el proyecto de ejemplo, este código se coloca dentro de un \<font color="#2166ae">iniciar sesión\</font> callback además, el nombre de usuario y la contraseña se obtienen usando edit texts el método \<font color="#2166ae">showalert\</font> es el mismo que agregaste en el \<font color="#2166ae">signupactivity\</font> , no olvides cambiar sus \<font color="#2166ae">intent\</font> argumentos 4 cerrar sesión cerrar sesión elimina el objeto de sesión activa para el usuario conectado el método utilizado para cerrar sesión es \<font color="#2166ae">parseuser logoutinbackground()\</font> para implementar el cierre de sesión del usuario, simplemente utiliza el código a continuación, en el \<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 } en el proyecto de ejemplo, este código se coloca dentro de un \<font color="#2166ae">cerrar sesión\</font> callback del botón el método \<font color="#2166ae">showalert\</font> es el mismo que agregaste en el \<font color="#2166ae">loginactivity\</font> y \<font color="#2166ae">signupactivity\</font> , no olvides cambiar sus \<font color="#2166ae">argumentos de intent\</font> 5 prueba tu aplicación ejecuta tu aplicación y crea un par de usuarios, también intenta iniciar sesión nuevamente después de registrarlos inicia sesión en sitio web de back4app https //www back4app com/ encuentra tu aplicación y haz clic en \<font color="#2166ae">tablero\</font> > \<font color="#2166ae">núcleo\</font> > \<font color="#2166ae">navegador\</font> > \<font color="#2166ae">usuario\</font> en este punto, deberías ver a tus usuarios como se muestra a continuación nota usando los códigos mostrados arriba, cada vez que inicies sesión con un usuario, se abre una \<font color="#2166ae">sesión\</font> en tu \<font color="#2166ae">tablero\</font> , pero cuando el usuario cierra sesión, esa \<font color="#2166ae">sesión\</font> particular termina además, cada vez que ocurre un intento fallido de inicio de sesión o registro, la \<font color="#2166ae">sesión\</font> abierta en el servidor parse \<font color="#2166ae">tablero\</font> se elimina ¡está hecho! ¡felicidades! ahora puedes iniciar sesión, registrarte o cerrar sesión en tu aplicación utilizando las características básicas del servidor parse a través de back4app!