Laravel 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 目录中,我们可以创建 login.blade.php 和 register.blade.php 两个视图文件。这些视图包含登录和注册表单,使用了一些 Laravel 帮助程序,可以处理表单验证并显示错误消息。
登录视图
在 login.blade.php 文件中,我们可以使用 Laravel 的 Form 辅助函数创建登录表单。这个函数会自动为表单添加 CSRF 令牌,并为输入字段编写 HTML 标记。
注意,我们使用了 Blade 模板引擎的 @csrf 和 @if 语句来生成必要的 CSRF 令牌并显示验证错误。
注册视图
在 register.blade.php 文件中,我们可以使用 Laravel 的 Form 帮助器创建注册表单。这个函数自动为表单添加 CSRF 令牌,并为输入字段编写 HTML 标记。
注意,我们使用了 Blade 模板引擎的 @csrf 和 @if 语句来生成必要的 CSRF 令牌并显示验证错误消息。
结论
通过 Laravel 可以快速、方便、安全地实现 Web 应用程序的登录和注册身份验证功能,从而保护您的应用程序免受未授权的访问。在本文中,我们介绍了 Laravel 的身份验证系统并实现了注册和登录。现在,您可以使用这些基础知识构建更完整的用户身份验证系统,或将其集成到您的现有应用程序中。
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!