Heim > Artikel > PHP-Framework > Laravel implementiert Registrierung und Anmeldung
Laravel ist ein häufig verwendetes PHP-Framework mit eleganter Syntax, leistungsstarken Funktionen und umfangreicher Dokumentation. Es ist für viele PHP-Entwickler zum Framework der Wahl geworden. In diesem Artikel wird erläutert, wie Sie mit dem Laravel-Framework Registrierungs- und Anmeldefunktionen implementieren.
1. Erstellen Sie eine Laravel-Anwendung
Bevor Sie mit der Implementierung der Registrierungs- und Anmeldefunktionen beginnen, müssen Sie zunächst eine Laravel-Anwendung erstellen. Sie können den von Laravel offiziell bereitgestellten Composer-Befehl verwenden, um eine neue Anwendung zu erstellen, wie unten gezeigt:
composer create-project --prefer-dist laravel/laravel your-project-name
Wobei Ihr-Projektname
der Name der Anwendung ist, die Sie erstellen möchten. your-project-name
是你想要创建的应用程序的名称。
创建完成后,进入应用程序目录并启动本地服务器:
cd your-project-name php artisan serve
在浏览器中输入http://localhost:8000
,即可访问应用程序的欢迎页面。
二、创建认证系统
在实现注册和登录功能之前,需要先创建一个基本的认证系统。Laravel提供了make:auth
Artisan命令,可以快速生成认证相关的视图和控制器。
php artisan make:auth
执行上述命令后,Laravel会自动创建register
、login
和logout
等相关的视图和控制器,并将它们添加到应用程序中。此外,Laravel还会在数据库中创建相关的用户和密码重置表。
三、创建数据库表
默认情况下,Laravel使用MySQL数据库。在本例中,需要创建一个名为users
的数据表来存储用户数据。可以使用以下Artisan命令来创建该表:
php artisan make:migration create_users_table --create=users
执行上述命令后,Laravel会在应用程序的database/migrations
目录中创建一个名为create_users_table
的迁移文件。打开该文件并修改up
方法,如下所示:
public function up() { Schema::create('users', function (Blueprint $table) { $table->bigIncrements('id'); $table->string('name'); $table->string('email')->unique(); $table->timestamp('email_verified_at')->nullable(); $table->string('password'); $table->rememberToken(); $table->timestamps(); }); }
上述迁移文件定义了users
数据表的字段,包括name
(用户名)、email
(电子邮件地址)、password
(密码)等等。
在修改完迁移文件之后,需要执行以下Artisan命令,来实际创建users
数据表:
php artisan migrate
四、创建注册页面
接下来,需要创建一个注册页面,让用户可以输入自己的用户名、电子邮件地址和密码。打开resources/views/auth/register.blade.php
文件,可以看到Laravel已经为我们创建了一个基本的注册表单。
此时,我们需要删除一些字段,同时增加必须填写的name
字段和确认密码password_confirmation
字段。修改后的代码如下所示:
<form method="POST" action="{{ route('register') }}"> @csrf <div> <label for="name">{{ __('Name') }}</label> <div> <input id="name" type="text" name="name" value="{{ old('name') }}" required autofocus> </div> </div> <div> <label for="email">{{ __('E-Mail Address') }}</label> <div> <input id="email" type="email" name="email" value="{{ old('email') }}" required> </div> </div> <div> <label for="password">{{ __('Password') }}</label> <div> <input id="password" type="password" name="password" required> </div> </div> <div> <label for="password-confirm">{{ __('Confirm Password') }}</label> <div> <input id="password-confirm" type="password" name="password_confirmation" required> </div> </div> <div> <button type="submit"> {{ __('Register') }} </button> </div> </form>
五、处理注册请求
现在,注册表单已经创建,但是当用户提交表单时并不会生效。所以我们需要修改app/Http/Controllers/Auth/RegisterController.php
文件来处理注册请求。
public function store(Request $request) { $this->validate($request, [ 'name' => 'required|string|max:255', 'email' => 'required|string|email|unique:users|max:255', 'password' => 'required|string|min:8|confirmed', ]); User::create([ 'name' => $request->name, 'email' => $request->email, 'password' => bcrypt($request->password), ]); return redirect()->intended('dashboard'); }
上述代码定义了一个名为store()
的方法,此方法用于处理注册请求。首先,validate()
方法会验证请求的数据。如果验证通过,则使用User
模型来创建一个新用户,并对密码进行加密。最后,重定向到应用程序的仪表板页面。
六、创建登录页面
接下来,需要创建一个登录页面,让用户可以输入自己的已注册电子邮件地址和密码。打开resources/views/auth/login.blade.php
文件,可以看到Laravel已经为我们创建了一个基本的登录表单。
七、处理登录请求
注册表单已经创建,但是当用户提交表单时并不会生效。所以我们需要修改app/Http/Controllers/Auth/LoginController.php
文件来处理登录请求。
public function store(Request $request) { $credentials = $request->only('email', 'password'); if (Auth::attempt($credentials)) { $request->session()->regenerate(); return redirect()->intended('dashboard'); } return back()->withErrors([ 'email' => 'The provided credentials do not match our records.', ]); }
上述代码定义了一个名为store()
的方法,此方法用于处理登录请求。首先,attempt()
方法会尝试使用用户提供的凭据进行身份验证。如果验证成功,则生成新会话并将用户重定向到应用程序的仪表板页面。如果失败,则会使用back()
方法将用户重定向回原始登录页面,并显示错误消息。
八、设置认证中间件
一旦注册和登录功能已经实现,需要保护应用程序的某些路由,只有已认证的用户才能访问。在Laravel中,可以使用中间件来实现此目的。Laravel提供了一个名为auth
的中间件,它会验证用户是否已经登录到应用程序。
Laravel默认情况下将auth
中间件应用于任何使用auth
路由名称的路由。可以使用以下代码来指定一个或多个中间件:
Route::get('/dashboard', function () { // 仅允许已登录用户访问 })->middleware(['auth']);
现在,只有已认证的用户才能访问/dashboard
rrreee
Geben Sie http://localhost:8000
in den Browser ein, um auf die Begrüßungsseite der Anwendung zuzugreifen.
make:auth
, um schnell authentifizierungsbezogene Ansichten und Controller zu generieren. 🎜rrreee🎜Nach der Ausführung des obigen Befehls erstellt Laravel automatisch zugehörige Ansichten und Controller wie register
, login
und logout
und fügt sie hinzu die Anwendung. Darüber hinaus erstellt Laravel relevante Benutzer- und Passwort-Reset-Tabellen in der Datenbank. 🎜🎜3. Datenbanktabelle erstellen🎜Standardmäßig verwendet Laravel die MySQL-Datenbank. In diesem Beispiel müssen Sie eine Datentabelle mit dem Namen users
erstellen, um Benutzerdaten zu speichern. Die Tabelle kann mit dem folgenden Artisan-Befehl erstellt werden: 🎜rrreee🎜Nach der Ausführung des obigen Befehls erstellt Laravel eine Migration mit dem Namen create_users_table
im Verzeichnisdokument database/migrations
der Anwendung. Öffnen Sie die Datei und ändern Sie die Methode up
wie folgt: 🎜rrreee🎜Die obige Migrationsdatei definiert die Felder der Datentabelle users
, einschließlich name
(Benutzername), email
(E-Mail-Adresse), password
(Passwort) usw. 🎜🎜Nachdem Sie die Migrationsdatei geändert haben, müssen Sie den folgenden Artisan-Befehl ausführen, um die Datentabelle users
tatsächlich zu erstellen: 🎜rrreee🎜4. Erstellen Sie eine Registrierungsseite🎜Als nächstes müssen Sie eine Registrierungsseite erstellen damit Benutzer Ihren Benutzernamen, Ihre E-Mail-Adresse und Ihr Passwort eingeben können. Öffnen Sie die Datei resources/views/auth/register.blade.php
und Sie können sehen, dass Laravel ein einfaches Registrierungsformular für uns erstellt hat. 🎜🎜An dieser Stelle müssen wir einige Felder löschen und das Feld name
und das Feld zur Passwortbestätigung password_confirmation
hinzufügen, die ausgefüllt werden müssen. Der geänderte Code lautet wie folgt: 🎜rrreee🎜 5. Verarbeiten Sie die Registrierungsanfrage🎜 Das Registrierungsformular wurde nun erstellt, es wird jedoch nicht wirksam, wenn der Benutzer das Formular absendet. Daher müssen wir die Datei app/Http/Controllers/Auth/RegisterController.php
ändern, um Registrierungsanfragen zu verarbeiten. 🎜rrreee🎜Der obige Code definiert eine Methode namens store()
, die zur Bearbeitung von Registrierungsanfragen verwendet wird. Zunächst validiert die Methode validate()
die angeforderten Daten. Wenn die Überprüfung erfolgreich ist, verwenden Sie das Modell Benutzer
, um einen neuen Benutzer zu erstellen und das Passwort zu verschlüsseln. Leiten Sie abschließend zur Dashboard-Seite der Anwendung weiter. 🎜🎜 6. Erstellen Sie eine Anmeldeseite 🎜 Als nächstes müssen Sie eine Anmeldeseite erstellen, auf der Benutzer ihre registrierte E-Mail-Adresse und ihr Passwort eingeben können. Öffnen Sie die Datei resources/views/auth/login.blade.php
und Sie können sehen, dass Laravel ein einfaches Anmeldeformular für uns erstellt hat. 🎜🎜7. Anmeldeanfragen werden bearbeitet🎜Das Registrierungsformular wurde erstellt, es wird jedoch nicht wirksam, wenn der Benutzer das Formular absendet. Daher müssen wir die Datei app/Http/Controllers/Auth/LoginController.php
ändern, um Anmeldeanfragen zu verarbeiten. 🎜rrreee🎜Der obige Code definiert eine Methode namens store()
, die zur Verarbeitung von Anmeldeanfragen verwendet wird. Zunächst versucht die Methode attempt()
, sich mithilfe der vom Benutzer bereitgestellten Anmeldeinformationen zu authentifizieren. Wenn die Überprüfung erfolgreich ist, wird eine neue Sitzung generiert und der Benutzer wird zur Dashboard-Seite der Anwendung weitergeleitet. Wenn dies fehlschlägt, wird die Methode back()
verwendet, um den Benutzer mit einer Fehlermeldung zurück zur ursprünglichen Anmeldeseite umzuleiten. 🎜🎜 8. Authentifizierungs-Middleware einrichten 🎜 Sobald die Registrierungs- und Anmeldefunktionen implementiert sind, müssen bestimmte Routen der Anwendung geschützt werden, damit nur authentifizierte Benutzer darauf zugreifen können. In Laravel können Sie dazu Middleware verwenden. Laravel stellt eine Middleware namens auth
bereit, die überprüft, ob der Benutzer bei der Anwendung angemeldet ist. 🎜🎜Laravel wendet standardmäßig die Middleware auth
auf jede Route an, die den Routennamen auth
verwendet. Mit dem folgenden Code können eine oder mehrere Middlewares angegeben werden: 🎜rrreee🎜 Jetzt können nur authentifizierte Benutzer auf die Route /dashboard
zugreifen. 🎜🎜Zusammenfassung🎜In diesem Artikel wird erläutert, wie Sie mit dem Laravel-Framework Registrierungs- und Anmeldefunktionen implementieren. Mithilfe des Laravel-Frameworks können Sie schnell und einfach eine sichere und zuverlässige Webanwendung erstellen und den Entwicklungsprozess von Webanwendungen vorantreiben. Unabhängig davon, ob Sie Anfänger oder erfahrener Entwickler sind, können Sie versuchen, mit dem Laravel-Framework Ihre eigenen Webanwendungen zu erstellen. 🎜Das obige ist der detaillierte Inhalt vonLaravel implementiert Registrierung und Anmeldung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!