iOS
Guía técnica para implementar inicio de sesión con Swift
14 min
tutorial de inicio de sesión y registro de usuario usando swift introducción esta sección explica cómo puedes crear una aplicación con un registro de usuario simple usando las características principales de parse server a través de back4app en cualquier momento, puedes acceder al proyecto completo construido con este tutorial en nuestro repositorio de github para completar este inicio rápido, necesitas xcode una aplicación creada en back4app sigue el tutorial de nueva aplicación parse para aprender cómo crear una aplicación parse en back4app una aplicación ios conectada a back4app nota sigue el tutorial de instalación del sdk de parse (swift) para crear un proyecto de xcode conectado a back4app una cuenta de desarrollador de apple paga ¡empecemos! siguiendo los siguientes pasos podrás construir una aplicación que permitirá iniciar sesión, registrarse y cerrar sesión en la base de datos de back4app 1 configura y crea tu interfaz de usuario para registrarse e iniciar sesión ve a xcode, accede a la carpeta principal del proyecto y luego abre el archivo viewcontroller swift para editarlo en viewcontroller swift asegúrate de incluir el módulo parse incluyéndolo en la parte superior del archivo 1 import parse 3\ ve a main storyboard, 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 view controller arrastra dos uibuttons más al view y colócalos debajo de los campos de texto arrastra un loader indicator más en cada botón establece el texto del botón superior para que diga iniciar sesión establece el texto del botón inferior para que diga registrarse establece los campos de texto para que digan nombre de usuario y contraseña 4\ a continuación, vamos a conectar tus uitextfields en tu storyboard a propiedades en tu view controller agrega las siguientes propiedades a la parte superior de viewcontroller swift 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… debería verse así 1 import uikit 2 import parse 3 4 class viewcontroller uiviewcontroller { 5 6 @iboutlet weak var txtusernamesignin uitextfield! 7 @iboutlet weak var txtpasswordsignin uitextfield! 8 @iboutlet weak var indicatorlogin uiactivityindicatorview! 9 10 @iboutlet weak var txtusernamesignup uitextfield! 11 @iboutlet weak var txtpasswordsignup uitextfield! 12 @iboutlet weak var indicatorsignup uiactivityindicatorview! 13 14 override func viewdidload() { 15 super viewdidload() 16 // do any additional setup after loading the view 17 } 18 19 @ibaction func signin( sender any) { 20 //todo 21 } 22 23 @ibaction func signup( sender any) { 24 //todo 25 } 26 27 } 2 crea una función de inicio de sesión agrega el siguiente código dentro de la función de inicio de sesión 1 @ibaction func signin( sender any) { 2 pfuser loginwithusername(inbackground self txtusernamesignin text!, password self txtpasswordsignin text!) { 3 (user pfuser?, error error?) > void in 4 if user != nil { 5 self displayalert(withtitle "login successful", message "") 6 } else { 7 self displayalert(withtitle "error", message error! localizeddescription) 8 } 9 } 10 } 3 crea una función de registro agrega el siguiente código dentro de la función de registro 1 @ibaction func signup( sender any) { 2 let user = pfuser() 3 user username = self txtusernamesignup text 4 user password = self txtpasswordsignup text 5 6 self indicatorsignup startanimating() 7 user signupinbackground {(succeeded bool, error error?) > void in 8 self indicatorsignup stopanimating() 9 if let error = error { 10 self displayalert(withtitle "error", message error localizeddescription) 11 } else { 12 self displayalert(withtitle "success", message "account has been successfully created") 13 } 14 } 15 } 4 cerrar sesión al iniciar sesión, se 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 panel de control de lo contrario, si el nombre de usuario objetivo no existe, o la contraseña es incorrecta, devuelve nulo para cerrar sesión, sigue los pasos a continuación ve a main storyboard, arrastra un uibutton llamado “logout”, y añade una acción entre este uibutton y viewcontroller swift añade el siguiente código en esta función 1 @ibaction func logout( sender any) { 2 pfuser logout() 3 } 5 código de la aplicación 1 import uikit 2 import parse 3 4 class viewcontroller uiviewcontroller { 5 6 @iboutlet weak var txtusernamesignin uitextfield! 7 @iboutlet weak var txtpasswordsignin uitextfield! 8 @iboutlet weak var indicatorsignin uiactivityindicatorview! 9 10 @iboutlet weak var txtusernamesignup uitextfield! 11 @iboutlet weak var txtpasswordsignup uitextfield! 12 @iboutlet weak var indicatorsignup uiactivityindicatorview! 13 14 @iboutlet weak var btnlogout uibutton! 15 16 override func viewdidload() { 17 super viewdidload() 18 } 19 20 @ibaction func signin( sender any) { 21 pfuser loginwithusername(inbackground self txtusernamesignin text!, password self txtpasswordsignin text!) { 22 (user pfuser?, error error?) > void in 23 if user != nil { 24 self displayalert(withtitle "login successful", message "") 25 } else { 26 self displayalert(withtitle "error", message error! localizeddescription) 27 } 28 } 29 } 30 31 @ibaction func signup( sender any) { 32 let user = pfuser() 33 user username = self txtusernamesignup text 34 user password = self txtpasswordsignup text 35 36 self indicatorsignup startanimating() 37 user signupinbackground {(succeeded bool, error error?) > void in 38 self indicatorsignup stopanimating() 39 if let error = error { 40 self displayalert(withtitle "error", message error localizeddescription) 41 } else { 42 self displayalert(withtitle "success", message "account has been successfully created") 43 } 44 } 45 } 46 47 @ibaction func logout( sender any) { 48 pfuser logout() 49 } 50 51 func displayalert(withtitle title string, message string) { 52 let alert = uialertcontroller(title title, message message, preferredstyle alert) 53 let okaction = uialertaction(title "ok", style default) 54 alert addaction(okaction) 55 self present(alert, animated true) 56 } 57 58 } la interfaz de la aplicación será similar a esta 6 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 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 de tu aplicación utilizando las características principales de parse server a través de back4app!