Laravel implementiert die Login-Registrierung
May 20, 2023 pm 09:10 PMLaravel ist ein beliebtes PHP-Framework, das eine leistungsstarke Entwicklungsumgebung bietet, die die Erstellung von Webanwendungen erleichtert. Eines der wichtigen Features ist das Laravel-eigene Authentifizierungssystem, mit dem Sie die Benutzerauthentifizierung, einschlie?lich Anmeldung und Registrierung, schnell implementieren k?nnen. In diesem Artikel zeigen wir, wie Sie die Login-Registrierung mit Laravel implementieren.
Bereitstellungsumgebung
Bevor wir mit der Implementierung der Authentifizierung beginnen, müssen wir sicherstellen, dass die Laravel-Umgebung und die Datenbankverbindung konfiguriert sind. Wenn Sie Laravel noch nicht installiert haben, k?nnen Sie die Installationsanleitung in der offiziellen Dokumentation nachlesen. In der Laravel-Anwendung erstellen wir mithilfe des Artisan-Befehlszeilentools die erforderliche Datei- und Verzeichnisstruktur. In der Befehlszeile k?nnen wir mit dem folgenden Befehl eine neue Laravel-Anwendung erstellen:
composer create-project --prefer-dist laravel/laravel blog
Navigieren Sie nach der Erstellung zum Stammverzeichnis der Anwendung und führen Sie den folgenden Befehl aus zum Generieren der Anwendung Programmschlüssel:
php artisan key:generate
Route registrieren
In Laravel ist Routing die Brücke, die URI und entsprechende Controller-Methoden verbindet. Um unsere Authentifizierungsrouten zu registrieren, müssen wir die Datei ?routes/web.php“ aktualisieren. In dieser Datei definieren wir die Routen für die Anwendung, einschlie?lich der Anmelde- und Registrierungsrouten.
Zuerst müssen wir die Route definieren, die die POST-Anfrage an /register sendet, und sie an die Methode register() von RegisterController binden. Dadurch wird ein Registrierungsformular angezeigt, in das der Benutzer seinen Benutzernamen und sein Passwort eingeben kann.
Route::post('/register', 'AuthRegisterController@register')->name('register');
Als n?chstes müssen wir die Route definieren, die die POST-Anfrage an /login sendet, und sie an binden die login()-Methode von LoginController. Dadurch wird ein Anmeldeformular angezeigt, in das der Benutzer seinen Anmeldenamen und sein Passwort eingeben kann. Wenn der Benutzer keine gültigen Anmeldeinformationen zur Authentifizierung hat, leitet die Anwendung zum Anmeldeformular weiter.
Route::post('/login', 'AuthLoginController@login')->name('login');
Abschlie?end müssen wir alle geschützten Routen definieren. In Laravel k?nnen wir die Authentifizierungs-Middleware verwenden, um sicherzustellen, dass der Benutzer authentifiziert wurde. Diese Middleware leitet nicht authentifizierte Benutzer automatisch zur Route /login um.
Route::middleware(['auth'])->group(function () {
// your protected routes go here
});
Handhabung des Controllers
Wir haben die notwendigen Routen definiert und müssen sie nun im Controller verwalten. In Laravel sind Controller Klassen, die bestimmte HTTP-Anfragen verarbeiten, und Methoden im Controller geben HTTP-Antworten zurück. In der Anwendung müssen wir zwei Controller erstellen, um Registrierungs- und Anmeldeanfragen zu verarbeiten.
Erstellen Sie im Verzeichnis app/Http/Controllers/Auth zwei Dateien: LoginController.php und RegisterController.php. Diese beiden Dateien sind die Controller-Klassen, die mit Laravel geliefert werden. In diesen Controllern müssen wir die Standardmethoden von Laravel überschreiben, um benutzerdefinierte Funktionen für Anmelde- und Registrierungsanfragen bereitzustellen.
Login-Controller
Schauen wir uns zun?chst den LoginController.php-Controller an. Dieser Controller enth?lt zwei Methoden: showLoginForm() und login(). Die Methode
showLoginForm() gibt die Anmeldeformularansicht (resources/views/auth/login.blade.php) zurück, die ein Formular enth?lt, in das der Benutzer seinen Anmeldenamen und sein Passwort eingeben kann. Diese Methode wird von Laravel bereitgestellt. In der Methode
public function showLoginForm()
{
return view('auth.login');
}
login() wird die Anmeldelogik tats?chlich implementiert. Diese Methode empf?ngt eine IlluminateHttpRequest-Instanz und validiert Benutzereingaben mithilfe der ?validate()“-Methode der Instanz. Wenn die Formularvalidierung erfolgreich ist, sucht Laravel automatisch nach dem Benutzer mit dem angegebenen Login und Passwort und meldet ihn bei der Anwendung an.
public function login(Request $request)
{
$request->validate([ 'email' => 'required|string|email', 'password' => 'required|string', 'remember' => 'boolean' ]); $credentials = $request->only('email', 'password'); if (Auth::attempt($credentials, $request->remember)) { return redirect()->intended('dashboard'); } return redirect()->back()->withInput($request->only('email', 'remember'));
}
Beachten Sie, dass die try()-Methode basierend auf den angegebenen Anmeldeinformationen automatisch prüft, ob das Passwort korrekt ist. Wenn das Passwort falsch ist, wird false zurückgegeben.
Wenn sich der Benutzer erfolgreich authentifiziert hat und die zuvor angeforderte URL gespeichert ist (normalerweise eine URL, die von der Authentifizierungs-Middleware blockiert wird), k?nnen wir die Laravel-Hilfsfunktion intend() verwenden, um ihn zu dieser URL umzuleiten. Wenn keine URL gespeichert ist, leiten Sie zum Frontend-Dashboard (/dashboard) weiter.
Register-Controller
Als n?chstes schauen wir uns den RegisterController.php-Controller an. Zus?tzlich zu den Standardmethoden von Laravel müssen wir auch die Methode register() implementieren. Die Methode ?register()“ ist der Methode ?login()“ sehr ?hnlich. Es empf?ngt eine IlluminateHttpRequest-Instanz und validiert Benutzereingaben mithilfe der ?validate()“-Methode der Instanz. Wenn die Formularvalidierung erfolgreich ist, erstellt Laravel einen neuen Benutzer und speichert ihn in der Datenbank. Anschlie?end k?nnen wir das Standardverhalten von Laravel verwenden, um den Benutzer bei der Anwendung anzumelden.
?ffentliches Funktionsregister (Request $request)
{$request->validate([ 'name' => 'required|string|max:255', 'email' => 'required|string|email|max:255|unique:users', 'password' => 'required|string|min:6|confirmed', ]); $user = User::create([ 'name' => $request->name, 'email' => $request->email, 'password' => Hash::make($request->password), ]); Auth::login($user); return redirect()->intended('dashboard');
}
Im Registrierungscontroller k?nnen wir die Hash-Hilfsfunktion verwenden, um das Passwort zu verschlüsseln. Wenn die Passwortüberprüfung erfolgreich ist, erstellen wir den neuen Benutzer und melden ihn in der Anwendung an.
Ansichtsebene
Da wir nun die notwendigen Routen und Controller definiert haben, müssen wir die Authentifizierungsansicht erstellen.在 resources/views/auth 目錄中,我們可以創(chuàng)建 login.blade.php 和 register.blade.php 兩個視圖文件。這些視圖包含登錄和注冊表單,使用了一些 Laravel 幫助程序,可以處理表單驗證并顯示錯誤消息。
登錄視圖
在 login.blade.php 文件中,我們可以使用 Laravel 的 Form 輔助函數(shù)創(chuàng)建登錄表單。這個函數(shù)會自動為表單添加 CSRF 令牌,并為輸入字段編寫 HTML 標(biāo)記。
注意,我們使用了 Blade 模板引擎的 @csrf 和 @if 語句來生成必要的 CSRF 令牌并顯示驗證錯誤。
注冊視圖
在 register.blade.php 文件中,我們可以使用 Laravel 的 Form 幫助器創(chuàng)建注冊表單。這個函數(shù)自動為表單添加 CSRF 令牌,并為輸入字段編寫 HTML 標(biāo)記。
注意,我們使用了 Blade 模板引擎的 @csrf 和 @if 語句來生成必要的 CSRF 令牌并顯示驗證錯誤消息。
結(jié)論
通過 Laravel 可以快速、方便、安全地實現(xiàn) Web 應(yīng)用程序的登錄和注冊身份驗證功能,從而保護您的應(yīng)用程序免受未授權(quán)的訪問。在本文中,我們介紹了 Laravel 的身份驗證系統(tǒng)并實現(xiàn)了注冊和登錄。現(xiàn)在,您可以使用這些基礎(chǔ)知識構(gòu)建更完整的用戶身份驗證系統(tǒng),或?qū)⑵浼傻侥默F(xiàn)有應(yīng)用程序中。
Das obige ist der detaillierte Inhalt vonLaravel implementiert die Login-Registrierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

TOWORKEFEKTIVE Withpivottablessinlaravel, First AccesspivotDatAusing withpivot () orwithtimestamps (), dann updateEntries mit

Die Laravel -Leistungsoptimierung kann die Anwendungseffizienz durch vier Kernrichtungen verbessern. 1. Verwenden Sie den Cache -Mechanismus, um doppelte Abfragen zu reduzieren, und speichern Sie die Daten selten über Cache :: Denken Sie daran () und andere Methoden, um die H?ufigkeit des Datenbankzugriffs zu reduzieren. 2. Die Datenbank aus dem Modell optimieren, um Anweisungen abzufragen, N 1 -Abfragen zu vermeiden, Feldabfragen anzugeben, Indizes hinzuzufügen, die Verarbeitung und Lesen von Paging und das Schreiben von Trennungen zu reduzieren und Engp?sse zu reduzieren. 3.. Verwenden Sie zeitaufw?ndige Vorg?nge wie E-Mail-Senden und Dateien exportieren in die asynchrone Warteschlangenverarbeitung, verwenden Sie den Supervisor, um Arbeitnehmer zu verwalten und Wiederholungsmechanismen einzurichten. 4. Verwenden Sie Middleware- und Dienstanbieter vernünftigerweise, um komplexe Logik- und unn?tige Initialisierungscode zu vermeiden und das Laden von Diensten zu verz?gern, um die Start -Effizienz zu verbessern.

Laravelsanctum eignet sich für einfache, leichte API -Zertifizierungen wie Spa oder mobile Anwendungen, w?hrend der Pass für Szenarien geeignet ist, in denen eine vollst?ndige OAuth2 -Funktionalit?t erforderlich ist. 1. Sanctum bietet eine tokenbasierte Authentifizierung an, die für Erstanbieter-Kunden geeignet ist. 2. Passport unterstützt komplexe Prozesse wie Autorisierungscodes und Client-Anmeldeinformationen, die für Entwickler von Drittanbietern geeignet sind. 3. Die Installation und Konfiguration von Sanctum sind einfacher und die Wartungskosten sind niedrig. 4. Passfunktionen sind umfassend, aber die Konfiguration ist komplex und für Plattformen geeignet, die eine feine Berechtigungssteuerung erfordern. Bei der Auswahl sollten Sie feststellen, ob die OAuth2 -Funktion basierend auf den Projektanforderungen erforderlich ist.

Zu den Methoden zum Verwalten des Datenbankzustands in Laravel -Tests geh?ren die Verwendung von RefreshDatabase, selektive Aussaat von Daten, sorgf?ltige Verwendung von Transaktionen und bei Bedarf manuelle Reinigung. 1. Verwenden Sie RefreshDatabasetrait, um die Datenbankstruktur automatisch zu migrieren, um sicherzustellen, dass jeder Test auf einer sauberen Datenbank basiert. 2. Verwenden Sie spezifische Saatgut, um die erforderlichen Daten zu füllen und dynamische Daten in Kombination mit der Modellfabrik zu generieren. 3.. Verwenden Sie den DatenbankstransaktionStrait, um die Test?nderungen zurückzusetzen, achten Sie jedoch auf seine Einschr?nkungen. 4. Die Tabelle manuell abschneiden oder die Datenbank neu s?umen, wenn sie nicht automatisch gereinigt werden kann. Diese Methoden werden nach der Art von Test und Umgebung flexibel ausgew?hlt, um die Zuverl?ssigkeit und Effizienz des Tests sicherzustellen.

Laravel vereinfacht die Datenbank-Transaktionsverarbeitung mit integrierter Unterstützung. 1. Verwenden Sie die Methode db :: TransAction (), um automatisch Vorg?nge zu verpflichten oder zu rollen, um die Datenintegrit?t zu gew?hrleisten. 2. unterstützen verschachtelte Transaktionen und implementieren Sie sie über SavePoints. In der Regel wird empfohlen, eine einzelne Transaktionswrapper zu verwenden, um Komplexit?t zu vermeiden. 3. Geben Sie manuelle Steuerungsmethoden wie begintransaktion (), commit () und rollback () an, die für Szenarien geeignet sind, die eine flexiblere Verarbeitung erfordern. 4. Zu Best Practices geh?rt, dass die Transaktionen kurz vorhanden sind, sie nur bei Bedarf verwenden, Testversuche testen und Rollback -Informationen aufzeichnen. Die rationale Auswahl von Transaktionsmanagementmethoden kann die Zuverl?ssigkeit und Leistung von Anwendungen verbessern.

Der Kern der Bearbeitung von HTTP -Anfragen und Antworten in Laravel besteht darin, die Erfassung von Anforderungsdaten, Antwortrückgabe und Datei -Upload zu beherrschen. 1. Beim Empfangen von Anforderungsdaten k?nnen Sie die Anforderungsinstanz über Typ -Eingabeaufforderungen injizieren und Input () oder magische Methoden verwenden, um Felder zu erhalten, und Validate () oder Formularanforderungsklassen zur überprüfung kombinieren. 2. Return -Antwort unterstützt Zeichenfolgen, Ansichten, JSONs, Antworten mit Statuscodes und Headern und Umleitungsvorg?nge; 3. Wenn Sie Dateien hochladen, müssen Sie die Datei () -Methode und Store () zum Speichern von Dateien verwenden. Vor dem Hochladen sollten Sie den Dateityp und die Dateityp und den Speicherpfad in der Datenbank gespeichert werden.

Die h?ufigste M?glichkeit, eine benannte Route in Laravel zu erzeugen, besteht darin, die Route () -Helferfunktion () zu verwenden, die automatisch dem Pfad basierend auf dem Routennamen und der Parameterbindung übernimmt. 1. übergeben Sie den Routennamen und die Parameter im Controller oder in der Ansicht, wie z. B. Route ('user.profile', ['id' => 1]); 2. Wenn mehrere Parameter, müssen Sie nur das Array übergeben, und die Reihenfolge hat keinen Einfluss auf die übereinstimmung, wie z. B. Route ('user.post.show', ['id' => 1, 'postId' => 10]); 3.. Links k?nnen direkt in die Blade -Vorlage eingebettet werden, z. B. Informationen anzeigen. 4. Wenn keine optionalen Parameter bereitgestellt werden, werden sie nicht angezeigt, wie z.

Die Warteschlangenpriorit?t von Laravel wird durch die Startsequenz gesteuert. Die spezifischen Schritte sind: 1. Definieren Sie mehrere Warteschlangen in der Konfigurationsdatei; 2. Geben Sie die Warteschlangenpriorit?t an, wenn Sie einen Arbeiter starten, wie z. 3.. Verwenden Sie die Onqueue () -Methode, um den Warteschlangennamen beim Verteilen von Aufgaben anzugeben. V. Dies stellt sicher, dass Aufgaben mit hoher Priorit?t zun?chst verarbeitet werden und gleichzeitig Code-Wartbarkeit und Systemstabilit?t beibehalten werden.
