iOS
Autenticazione utente iOS con Xcode e Parse Server
17 min
tutorial di accesso e registrazione utente utilizzando xcode e back4app introduzione questa sezione spiega come puoi creare un'app con una semplice registrazione utente utilizzando https //www back4app com/product/parse server tramite back4app ecco come apparirà in qualsiasi momento, puoi accedere al progetto completo costruito con questo tutorial nel nostro https //github com/templates back4app/ios install sdk per completare questo quickstart, hai bisogno di https //developer apple com/xcode/ un'app creata su back4app segui il https //www back4app com/docs/get started/new parse app per imparare a creare un'app parse su back4app un'app ios collegata a back4app nota segui il https //www back4app com/docs/ios/parse objc sdk per creare un progetto xcode collegato a back4app un account apple developer a pagamento 1 configura aggiungi un altro view controller chiamato loggedinviewcontroller nella storyboard principale trascina un view controller sulla tela e imposta la classe su loggedinviewcontroller e imposta l'id della storyboard su loggedinviewcontroller in entrambi i file viewcontroller m e loggedinviewcontroller m assicurati di includere il modulo parse includendolo nella parte superiore del file \#import \<parse/parse h> 2 crea la tua interfaccia di registrazione e accesso accedere crea un oggetto session, che punta all'utente connesso se l'accesso ha successo, parseuser currentuser() restituisce un oggetto utente, e un oggetto session viene creato nel dashboard dashboard altrimenti, se il nome utente target non esiste, o la password è errata, restituisce null il metodo utilizzato per eseguire l'azione di accesso è parseuser loginwithusername() , che richiede tanti argomenti quanti sono le stringhe di nome utente e password, e può chiamare una funzione di callback nota dopo la registrazione, l'accesso viene eseguito automaticamente trascina quattro uitextfields sul viewcontroller nel main storyboard centra il textfield e metti due nella parte superiore e due nella parte inferiore del view controller trascina altri due uibuttons sulla vista e posizionali sotto i textfields imposta il testo del pulsante superiore su accedi imposta il pulsante inferiore su registrati imposta i campi di testo su nome utente e password dovrebbe apparire così 2\ successivamente, collegheremo i tuoi uitextfields nel tuo storyboard a proprietà nel tuo view controller aggiungi le seguenti proprietà in cima a viewcontroller m poi vai al tuo storyboard e fai clic destro su ciascun uitextfield e fai clic su reference outlet, quindi trascina una linea di ritorno all'icona del viewcontroller e impostala sul campo appropriato signinusernamefield si collega al campo nome utente di accesso, ecc infine, aggiungeremo un uiactivityindicatorview per dopo @interface viewcontroller (){ iboutlet uitextfield signinusernametextfield; iboutlet uitextfield signinpasswordtextfield; iboutlet uitextfield signupusernametextfield; iboutlet uitextfield signuppasswordtextfield; uiactivityindicatorview activityindicatorview; } 2\ quindi, nel metodo viewdidload, imposta il uiactivityindicatorview per essere attaccato al centro dello schermo \ (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\ quindi, nel metodo viewdidappear, controlla se sei già connesso se sei connesso, reindirizzerai l'utente al loggedinviewcontroller \ (void)viewdidappear (bool)animated { if (\[pfuser currentuser]) { \[self gotomainpage]; } } 4\ successivamente, aggiungiamo il metodo gotomainpage reindirizzerà l'utente al loggedinviewcontroller assicurati che il loggedinviewcontroller nel storyboard abbia la sua classe e l'id storyboard impostati su 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\ ora impostiamo l'ibaction che si collegherà al pulsante signup nel viewcontroller nel main storyboard \ (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\ dobbiamo aggiungere la funzione displayerrormessage per mostrare eventuali messaggi di errore dal server utilizzeremo questo metodo ogni volta che comunichiamo con la nostra app parse \ (void)displaymessagetouser (nsstring )message { uialertcontroller alert = \[uialertcontroller alertcontrollerwithtitle @"messaggio" 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\ ora che possiamo gestire l'attività di rete e gli errori di rete, impostiamo l'ibaction che si collegherà al pulsante signin nel viewcontroller nel main storyboard \ (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 disconnettersi disconnettersi elimina l'oggetto sessione attiva per l'utente connesso il metodo utilizzato per eseguire la disconnessione è parseuser logoutinbackgroundwithblock() trascina un uibutton su loggedinviewcontroller nel storyboard principale imposta il titolo del pulsante su ‘logout’ dovrebbe apparire così aggiungiamo di nuovo la funzione displayerrormessage per mostrare eventuali messaggi di errore dal server utilizzeremo questo metodo ogni volta che comunichiamo con la nostra app parse \ (void)displaymessagetouser (nsstring )message { uialertcontroller alert = \[uialertcontroller alertcontrollerwithtitle @"messaggio" 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\ aggiungiamo la funzione gotostartpage per riportarci alla schermata di login/signup dopo il logout \ (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\ infine, aggiungiamo l'ibaction per eseguire la chiamata di logout e riportarci alla pagina di signup/login di viewcontroller m questo metodo disconnette il pfuser e ti riporta alla pagina di signup collega questo ibaction al pulsante di logout su 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 testa la tua app esegui la tua app e crea un paio di utenti, prova anche a effettuare nuovamente il login dopo averli registrati accedi a https //www back4app com/ trova la tua app e fai clic su dashboard dashboard > core core > browser browser > utente utente prova a effettuare il login e il logout con lo stesso utente e a riconnetterti a questo punto, dovresti vedere i tuoi utenti come mostrato di seguito nota utilizzando i codici visualizzati sopra, ogni volta che accedi con un utente, viene aperta una sessione sessione nel tuo dashboard dashboard , ma quando l'utente esce, quella particolare sessione sessione termina inoltre, ogni volta che si verifica un tentativo di login o registrazione non riuscito, la sessione sessione aperta nel parse server dashboard dashboard viene eliminata è fatto! a questo punto, puoi accedere, registrarti o disconnetterti dalla tua app utilizzando le funzionalità principali di parse server tramite back4app!