Crea il nostro login per l'applicazione Ruby on Rails

Sommario
Nelle nostre applicazioni web dovremo quasi sempre registrare gli utenti, in questo modo avremo membri dei nostri negozi, blog, comunità virtuali, sistemi amministrativi, ecc. Affinché la registrazione sia efficace e utile, questi utenti devono poi potersi autenticare per poter inserire parti che sono state create per gli utenti registrati, come visualizzare il proprio profilo, gestire i propri messaggi, fare acquisti, scrivere articoli, ecc.
Il login è la parte vitale della nostra applicazione, ci permette di separare il privato dal pubblico, ci permette di sapere che profilo ha ogni utente che entra e quindi decidere cosa può vedere o meno.
Affinché la nostra applicazione abbia questa funzionalità, abbiamo bisogno di un'azione nel controller che ci permetta di autenticare l'utente confrontando il suo nome utente e password con ciò che abbiamo nel database, quindi una volta che ciò accade dobbiamo salvare nella sessione alcuni valori che ci permettono di sapere in ogni momento chi ha effettuato l'accesso e quale profilo e permessi ha, ovviamente quest'ultimo dipende molto dal design della nostra applicazione.
Ormai dobbiamo sapere come generare un controller e tutto ciò che riguarda la console rotaie, quindi vedremo direttamente il controller e il suo contenuto, nonché la logica dietro di esso:
 def login se request.get? session [: user_id] = nil @user = User.new else @user = User.new (params [: user]) log_in_user = @ user.try_to_login if log_in_user session [: user_id] = log_in_user.id redirect_to (: action => "indice") else flash [: avviso] = "Combinazione utente/password non valida" end end end 

Nella prima parte con il condizionale IF del nostro controller chiediamo il richiestaSe è GET, puliamo la sessione e creiamo un nuovo oggetto di tipo utente, in questo modo prepariamo la strada per entrare. Se non OTTIENI il richiesta assumiamo che sia POST, quindi passiamo i parametri del form al nostro oggetto e quindi chiamiamo il metodo try_to_login, ciò che fa questo metodo è confrontare nome utente e password con ciò che abbiamo nel database.
Infine con un altro condizionale vediamo se l'utente era effettivamente loggato, assegniamo valori alla sessione e poi reindirizziamo l'utente all'indice, altrimenti mostriamo un errore con un messaggio.
Come abbiamo visto nel controller chiamiamo alcuni metodi che ci permettono di fare i corrispondenti confronti, ora quello che ci serve è creare questi metodi e per questo lo faremo nel modello, vediamo cosa contiene e perché contiene esso:
 def self.login (nome, password) hash_password = hash_password (password || "") find (: first,: condition => ["name =? and hash_password =?", name, hash_password]) end def try_to_login User.login (nome.auto, password personale) fine 

Il metodo Accedere è semplice, riceve due parametri: nome e password, quindi interroga il database per questi valori.
Il metodo try_to_login, quello che fa è invocare il metodo login, in questo modo possiamo dare una risposta all'utente se esiste o meno nel nostro database.
Infine creiamo la nostra vista e le azioni che utilizzerà, nel file app / visualizzazioni / login creeremo il nostro login.rhtml e anche il nostro index.rhtml, il primo è abbastanza simile alla costruzione dell'utente e questo secondo lo vedremo ora.

Totale ordini nel sistema:

Ordini in attesa di spedizione:


Come possiamo vedere, è abbastanza semplice, mostrerà semplicemente gli ordini in sospeso dell'utente, per questo nel controller dobbiamo incorporare le azioni necessarie:
 def index @total_orders = *****.count @pending_orders = *****.count_pending end 

Lì avremmo visto il risultato.Ti è piaciuto e hai aiutato questo Tutorial?Puoi premiare l'autore premendo questo pulsante per dargli un punto positivo

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave