iOS
Inicio de sesión con Parse: Tutorial de Xcode para iOS
17 min
tutorial de inicio de sesión y registro de usuario utilizando xcode y back4app introducción esta sección explica cómo puedes crear una aplicación con un registro de usuario simple utilizando https //www back4app com/product/parse server a través de back4app así es como se verá en cualquier momento, puedes acceder al proyecto completo construido con este tutorial en nuestro https //github com/templates back4app/ios install sdk para completar este inicio rápido, necesitas https //developer apple com/xcode/ una aplicación creada en back4app sigue el https //www back4app com/docs/get started/new parse app para aprender cómo crear una aplicación parse en back4app una aplicación ios conectada a back4app nota sigue el https //www back4app com/docs/ios/parse objc sdk para crear un proyecto de xcode conectado a back4app una cuenta de desarrollador de apple paga 1 configurar agrega otro controlador de vista llamado loggedinviewcontroller en el storyboard principal, arrastra un controlador de vista al lienzo y establece la clase en loggedinviewcontroller y establece el id del storyboard en loggedinviewcontroller en ambos viewcontroller m y loggedinviewcontroller m asegúrate de incluir el módulo parse incluyéndolo en la parte superior del archivo \#import \<parse/parse h> 2 crea tu interfaz de usuario de registro e inicio de sesión iniciar sesión crea un objeto de sesión, que apunta al usuario que ha iniciado sesión si el inicio de sesión es exitoso, parseuser currentuser() devuelve un objeto usuario, y se crea un objeto de sesión en el tablero tablero 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 parseuser loginwithusername() , 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 arrastra cuatro uitextfields al viewcontroller en el storyboard principal centra el campo de texto y coloca dos en la parte superior y dos en la parte inferior del viewcontroller arrastra dos uibuttons más a la vista y colócalos debajo de los campos de texto establece el texto del botón superior para que diga iniciar sesión establece el botón inferior para que diga registrarse establece los campos de texto para que digan nombre de usuario y contraseña debería verse así 2\ a continuación, vamos a conectar tus uitextfields en tu storyboard a propiedades en tu viewcontroller agrega las siguientes propiedades a la parte superior de viewcontroller m luego ve a tu storyboard y haz clic derecho en cada uitextfield y haz clic en el outlet de referencia, luego arrastra una línea de regreso al ícono de viewcontroller y configúralo en el campo apropiado signinusernamefield se conecta al campo de nombre de usuario de inicio de sesión, etc finalmente, agregaremos un uiactivityindicatorview para más adelante @interface viewcontroller (){ iboutlet uitextfield signinusernametextfield; iboutlet uitextfield signinpasswordtextfield; iboutlet uitextfield signupusernametextfield; iboutlet uitextfield signuppasswordtextfield; uiactivityindicatorview activityindicatorview; } 2\ luego, en el método viewdidload, establece el uiactivityindicatorview para que esté adjunto al medio de la pantalla \ (void)viewdidload { \[super viewdidload]; cgrect frame = cgrectmake (120 0, 185 0, 80, 80); activityindicatorview = \[\[uiactivityindicatorview alloc] initwithframe\ frame]; activityindicatorview\ color = \[uicolor bluecolor]; \[self view addsubview\ activityindicatorview]; } 3\ luego, en el método viewdidappear, verifica si ya has iniciado sesión si has iniciado sesión, redirigirás al usuario al loggedinviewcontroller \ (void)viewdidappear (bool)animated { if (\[pfuser currentuser]) { \[self gotomainpage]; } } 4\ a continuación, agreguemos el método gotomainpage redirigirá al usuario al loggedinviewcontroller asegúrate de que el loggedinviewcontroller en el storyboard tenga su clase y id de storyboard configurados como loggedinviewcontroller \ (void)gotomainpage { nsstring storyboardname = @"main"; uistoryboard storyboard = \[uistoryboard storyboardwithname\ storyboardname bundle nil]; loggedinviewcontroller vc = \[storyboard instantiateviewcontrollerwithidentifier @"loggedinviewcontroller"]; \[self presentviewcontroller\ vc animated\ yes completion\ nil]; } 5\ ahora configuremos el ibaction que se conectará al botón de registro en el viewcontroller en el storyboard principal \ (ibaction)signup (id)sender { pfuser user = \[pfuser user]; user username = signupusernametextfield text; user password = signuppasswordtextfield text; \[activityindicatorview startanimating]; \[user signupinbackgroundwithblock ^(bool succeeded, nserror error) { \[self >activityindicatorview stopanimating]; if (!error) { \[self gotomainpage]; } else { \[self displaymessagetouser\ error localizeddescription]; } }]; } 6\ necesitamos agregar la función displayerrormessage para mostrar cualquier mensaje de error del servidor usaremos este método cada vez que nos comuniquemos con nuestra aplicación de parse \ (void)displaymessagetouser (nsstring )message { uialertcontroller alert = \[uialertcontroller alertcontrollerwithtitle @"mensaje" message\ message preferredstyle\ uialertcontrollerstylealert]; uipopoverpresentationcontroller poppresenter = \[alert popoverpresentationcontroller]; poppresenter sourceview = self view; uialertaction okbutton = \[uialertaction actionwithtitle @"ok" style\ uialertactionstyledefault handler ^(uialertaction action) { }]; \[alert addaction\ okbutton]; poppresenter sourcerect = self view\ frame; alert modalpresentationstyle = uimodalpresentationpopover; \[self presentviewcontroller\ alert animated\ yes completion\ nil]; } 7\ ahora que podemos manejar la actividad de red y los errores de red, configuremos el ibaction que se conectará al botón de iniciar sesión en el viewcontroller en el storyboard principal \ (ibaction)signup (id)sender { pfuser user = \[pfuser user]; user username = signupusernametextfield text; user password = signuppasswordtextfield text; \[activityindicatorview startanimating]; \[user signupinbackgroundwithblock ^(bool succeeded, nserror error) { \[self >activityindicatorview stopanimating]; if (!error) { \[self gotomainpage]; } else { \[self displaymessagetouser\ error localizeddescription]; } }]; } 3 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 parseuser logoutinbackgroundwithblock() arrastra un uibutton a loggedinviewcontroller en el storyboard principal establece el título del botón en ‘cerrar sesión’ debería verse así agreguemos la función displayerrormessage nuevamente para mostrar cualquier mensaje de error del servidor usaremos este método cada vez que nos comuniquemos con nuestra aplicación de parse \ (void)displaymessagetouser (nsstring )message { uialertcontroller alert = \[uialertcontroller alertcontrollerwithtitle @"mensaje" message\ message preferredstyle\ uialertcontrollerstylealert]; uipopoverpresentationcontroller poppresenter = \[alert popoverpresentationcontroller]; poppresenter sourceview = self view; uialertaction okbutton = \[uialertaction actionwithtitle @"ok" style\ uialertactionstyledefault handler ^(uialertaction action) { }]; \[alert addaction\ okbutton]; poppresenter sourcerect = self view\ frame; alert modalpresentationstyle = uimodalpresentationpopover; \[self presentviewcontroller\ alert animated\ yes completion\ nil]; } 2\ agreguemos la función gotostartpage para llevarnos de vuelta a la pantalla de inicio de sesión/registro después de cerrar sesión \ (void)gotostartpage { nsstring storyboardname = @"main"; uistoryboard storyboard = \[uistoryboard storyboardwithname\ storyboardname bundle nil]; viewcontroller vc = \[storyboard instantiateviewcontrollerwithidentifier @"viewcontroller"]; \[self presentviewcontroller\ vc animated\ yes completion\ nil]; } 3\ finalmente, agreguemos el ibaction para ejecutar la llamada de cierre de sesión y llevarnos de vuelta a la página de registro/inicio de sesión de viewcontroller m este método cierra sesión al pfuser y te lleva de vuelta a la página de registro conecta este ibaction al botón de cierre de sesión en loggedinviewcontroller \ (ibaction)logout (id)sender { \[activityindicatorview startanimating]; \[pfuser logoutinbackgroundwithblock ^(nserror nullable error) { \[self >activityindicatorview stopanimating]; if(error == nil){ \[self gotostartpage]; }else{ \[self displaymessagetouser\ error debugdescription]; } }]; } 4 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 https //www back4app com/ encuentra tu aplicación y haz clic en tablero tablero > núcleo núcleo > navegador navegador > usuario usuario intenta iniciar y cerrar sesión con el mismo usuario y vuelve a iniciar sesión 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 sesión sesión en tu tablero tablero , pero cuando el usuario cierra sesión, esa sesión sesión particular termina además, cada vez que ocurre un intento de inicio de sesión o registro fallido, la sesión sesión abierta en el servidor parse tablero tablero se elimina ¡está hecho! en esta etapa, puedes iniciar sesión, registrarte o cerrar sesión en tu aplicación utilizando las funciones principales de parse server a través de back4app!