Zbuduj nasz login aplikacji Ruby on Rails

Spisie treści
W naszych aplikacjach internetowych prawie zawsze będziemy musieli rejestrować użytkowników, w ten sposób będziemy mieli członków naszych sklepów, blogów, wirtualnych społeczności, systemów administracyjnych itp. Aby rejestracja była skuteczna i użyteczna, użytkownicy ci muszą mieć możliwość uwierzytelnienia się, aby móc wejść do części, które zostały utworzone dla zarejestrowanych użytkowników, takich jak przeglądanie ich profilu, zarządzanie wiadomościami, dokonywanie zakupów, pisanie artykułów itp.
Logowanie jest istotną częścią naszej aplikacji, pozwala nam oddzielić prywatne od publiczne, pozwala nam wiedzieć, jaki profil ma każdy użytkownik, który wchodzi, a tym samym decydować, co może zobaczyć, a co nie.
Aby nasza aplikacja miała taką funkcjonalność potrzebujemy akcji w kontrolerze, która pozwoli nam uwierzytelnić użytkownika poprzez porównanie jego nazwy użytkownika i hasła z tym, co mamy w bazie danych, wtedy gdy tak się stanie musimy zapisać w sesji jakieś wartości które pozwalają nam przez cały czas wiedzieć, kto jest zalogowany i jaki ma profil i uprawnienia, oczywiście te ostatnie zależą w dużej mierze od projektu naszej aplikacji.
Do tej pory musimy wiedzieć, jak wygenerować kontroler i wszystko, co związane z konsolą szyny, więc bezpośrednio zobaczymy kontroler i jego zawartość, a także logikę za nim stojącą:
 def login jeśli request.get? session [: user_id] = nil @user = User.new else @user = User.new (params [: user]) log_in_user = @ user.try_to_login if zalogowany_użytkownik session [: user_id] = log_in_user.id redirect_to (: action => "index") else flash [: uwaga] = "Nieprawidłowa kombinacja użytkownika / hasła" end end end 

W pierwszej części z warunkiem warunkowym JEŻELI naszego kontrolera prosimy o żądanieJeśli jest to GET, czyścimy sesję i tworzymy nowy obiekt typu user, w ten sposób przygotowujemy drogę do wejścia. Jeśli nie, POBIERZ żądanie zakładamy, że jest to POST, następnie przekazujemy parametry formularza do naszego obiektu, a następnie wywołujemy metodę try_to_login, to, co robi ta metoda, to porównanie nazwy użytkownika i hasła z tym, co mamy w bazie danych.
Na koniec z kolejnym warunkiem sprawdzamy, czy użytkownik był rzeczywiście zalogowany, przypisujemy wartości do sesji, a następnie przekierowujemy użytkownika do indeksu, w przeciwnym razie pokazujemy błąd z komunikatem.
Jak widzieliśmy w kontrolerze wywołujemy pewne metody, które pozwalają nam dokonać odpowiednich porównań, teraz musimy stworzyć te metody i do tego zrobimy to w modelu, zobaczmy, co zawiera i dlaczego zawiera to:
 def self.login (nazwa, hasło) hashed_password = hash_password (hasło || "") find (: first,: condition => ["name =? and hashed_password =?", name, hashed_password]) end def try_to_login User.login (self.name, self.password) koniec 

Metoda Zaloguj sie to proste, otrzymuje dwa parametry: nazwę i hasło, a następnie wysyła zapytanie do bazy danych o te wartości.
Metoda try_to_login, to co robi, to wywołanie metody logowania, w ten sposób możemy dać użytkownikowi odpowiedź, czy istnieje, czy nie w naszej bazie danych.
Na koniec tworzymy nasz widok i akcje, których będzie używał, w pliku aplikacja / widoki / logowanie stworzymy nasze login.rhtml a także nasz index.rhtml, pierwszy jest dość podobny do konstrukcji użytkownika, a ten drugi zobaczymy teraz.

Suma zamówień w systemie:

Zamówienia oczekujące na wysyłkę:


Jak widzimy, jest to dość proste, po prostu pokaże oczekujące zamówienia użytkownika, do tego w kontrolerze musimy uwzględnić niezbędne akcje:
 def index @total_orders = *****.count @pending_orders = *****.count_pending end 

Tam zobaczylibyśmy wynik.Podobał Ci się i pomógł ten samouczek?Możesz nagrodzić autora, naciskając ten przycisk, aby dać mu pozytywny punkt
wave wave wave wave wave