Erstellen Sie ein Login für unsere Ruby on Rails-Anwendung

In unseren Webanwendungen müssen wir fast immer Benutzer registrieren. Auf diese Weise haben wir Mitglieder in unseren Stores, Blogs, virtuellen Communities, Verwaltungssystemen usw. Damit die Registrierung effektiv und nützlich ist, müssen sich diese Benutzer authentifizieren können, um auf Teile zugreifen zu können, die für registrierte Benutzer erstellt wurden, z. B. das Anzeigen ihres Profils, das Verwalten ihrer Nachrichten, das Abschließen von Einkäufen, das Schreiben von Artikeln usw.

Anmeldung der Anwendung eingeben

Die Anmeldung ist der wichtigste Teil unserer Anwendung. Sie ermöglicht es uns, das Private von dem Öffentlichen zu trennen. Sie ermöglicht uns zu wissen, welches Profil jeder Benutzer eingeben muss, und damit zu entscheiden, was er sehen kann oder nicht.

Damit unsere Anwendung über diese Funktionalität verfügt, benötigen wir eine Aktion im Controller, mit der wir den Benutzer authentifizieren können, indem wir seinen Benutzernamen und sein Kennwort mit den Werten in der Datenbank vergleichen. In diesem Fall müssen wir in der Sitzung einige Werte speichern, die uns die Authentifizierung ermöglichen Zu jeder Zeit wissen, wer angemeldet ist und über welches Profil und welche Berechtigungen Sie verfügen. Dies hängt natürlich stark vom Design unserer Anwendung ab.

An diesem Punkt müssen wir wissen, wie man einen Controller und alles, was mit der Rails- Konsole zusammenhängt, erzeugt. Wir werden also den Controller und seinen Inhalt direkt sehen und die Logik dahinter sehen:

 def login wenn request.get? session [: user_id] = nil @user = User.new sonst @user = User.new (params [: user]) eingeloggt_in_Benutzer = @ user.try_to_login wenn angemeldet_in_Benutzer session [: user_id] = eingeloggt_in_Benutzer.id redirect_to (: action => "index") sonst flash [: notice] = "Ungültige Benutzer / Passwort-Kombination" ende ende ende 

Im ersten Teil mit dem bedingten IF unseres Controllers fragen wir nach der Anforderung . Wenn es sich um GET handelt, bereinigen wir die Sitzung und erstellen ein neues Benutzertypobjekt. Auf diese Weise bereiten wir die Eingabe vor. Wenn GET nicht die Anforderung ist, von der wir annehmen, dass es sich um POST handelt, übergeben wir die Formularparameter an unser Objekt und rufen dann die try_to_login- Methode auf. Diese Methode dient dazu, den Benutzernamen und das Kennwort mit dem zu vergleichen, auf dessen Grundlage wir verfügen Daten

See also  Installieren und konfigurieren Sie OPcache für die PHP-Leistung in CentOS 7

Schließlich sehen wir unter einer anderen Bedingung, ob der Benutzer tatsächlich angemeldet war, weisen der Sitzung Werte zu und leiten den Benutzer dann zum Index weiter. Andernfalls wird ein Fehler mit einer Meldung angezeigt.

Das Modell

Wie wir in der Steuerung gesehen haben, rufen wir einige Methoden auf, die es uns ermöglichen, die entsprechenden Vergleiche durchzuführen. Jetzt müssen wir diese Methoden erstellen und dafür werden wir es im Modell tun. Schauen wir uns an, was es enthält und warum es es enthält:

 def self.login (Name, Passwort) hashed_password = hash_password (Passwort || "") find (: first, : conditions => ["name =? und hashed_password =?", name, hashed_password]) ende def try_to_login User.login (self.name, self.password) ende 

Die Anmeldemethode ist einfach: Sie empfängt zwei Parameter: Name und Kennwort und fragt dann die Datenbank nach diesen Werten ab.

Die try_to_login- Methode ruft die login-Methode auf. Auf diese Weise können wir dem Benutzer eine Antwort geben, ob sie in unserer Datenbank vorhanden ist oder nicht.

Schließlich erstellen wir unsere Ansicht und die Aktionen, die verwendet werden sollen. In der Datei app / views / login erstellen wir unsere Datei login.rhtml und auch unsere Datei index.rhtml. Die erste ist der Konstruktion des Benutzers sehr ähnlich, und diese zweite sehen wir jetzt.

 <% @page_title = "Shop verwalten" -%> <h1> Depot Store Status </ h1> <p> Gesamtanzahl Bestellungen im System: <% = @ total_orders%> </ p> <p> Bestellungen bis zum Versand: <% = @ pending_orders%> </ p> 

Wie wir sehen, ist es ganz einfach, die ausstehenden Bestellungen des Benutzers anzuzeigen. Dazu müssen wir im Controller die notwendigen Aktionen einbauen:

 def index @total_orders = *****. count @pending_orders = *****. count_pending ende 

Dort hätten wir das Ergebnis gesehen.

See also  So leiten Sie eine WhatsApp weiter, ohne sie weiterzuleiten

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *