Heim > PHP-Framework > Laravel > Hauptteil

Laravel implementiert Registrierung und Anmeldung

WBOY
Freigeben: 2023-05-21 09:31:07
Original
1127 Leute haben es durchsucht

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
Nach dem Login kopieren

Wobei Ihr-Projektname der Name der Anwendung ist, die Sie erstellen möchten. your-project-name是你想要创建的应用程序的名称。

创建完成后,进入应用程序目录并启动本地服务器:

cd your-project-name
php artisan serve
Nach dem Login kopieren

在浏览器中输入http://localhost:8000,即可访问应用程序的欢迎页面。

二、创建认证系统
在实现注册和登录功能之前,需要先创建一个基本的认证系统。Laravel提供了make:auth Artisan命令,可以快速生成认证相关的视图和控制器。

php artisan make:auth
Nach dem Login kopieren

执行上述命令后,Laravel会自动创建registerloginlogout等相关的视图和控制器,并将它们添加到应用程序中。此外,Laravel还会在数据库中创建相关的用户和密码重置表。

三、创建数据库表
默认情况下,Laravel使用MySQL数据库。在本例中,需要创建一个名为users的数据表来存储用户数据。可以使用以下Artisan命令来创建该表:

php artisan make:migration create_users_table --create=users
Nach dem Login kopieren

执行上述命令后,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();
    });
}
Nach dem Login kopieren

上述迁移文件定义了users数据表的字段,包括name(用户名)、email(电子邮件地址)、password(密码)等等。

在修改完迁移文件之后,需要执行以下Artisan命令,来实际创建users数据表:

php artisan migrate
Nach dem Login kopieren

四、创建注册页面
接下来,需要创建一个注册页面,让用户可以输入自己的用户名、电子邮件地址和密码。打开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>
Nach dem Login kopieren

五、处理注册请求
现在,注册表单已经创建,但是当用户提交表单时并不会生效。所以我们需要修改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');
}
Nach dem Login kopieren

上述代码定义了一个名为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.',
    ]);
}
Nach dem Login kopieren

上述代码定义了一个名为store()的方法,此方法用于处理登录请求。首先,attempt()方法会尝试使用用户提供的凭据进行身份验证。如果验证成功,则生成新会话并将用户重定向到应用程序的仪表板页面。如果失败,则会使用back()方法将用户重定向回原始登录页面,并显示错误消息。

八、设置认证中间件
一旦注册和登录功能已经实现,需要保护应用程序的某些路由,只有已认证的用户才能访问。在Laravel中,可以使用中间件来实现此目的。Laravel提供了一个名为auth的中间件,它会验证用户是否已经登录到应用程序。

Laravel默认情况下将auth中间件应用于任何使用auth路由名称的路由。可以使用以下代码来指定一个或多个中间件:

Route::get('/dashboard', function () {
    // 仅允许已登录用户访问
})->middleware(['auth']);
Nach dem Login kopieren

现在,只有已认证的用户才能访问/dashboard

Geben Sie nach der Erstellung das Anwendungsverzeichnis ein und starten Sie den lokalen Server:

rrreee
Geben Sie http://localhost:8000 in den Browser ein, um auf die Begrüßungsseite der Anwendung zuzugreifen.

🎜2. Erstellen Sie ein Authentifizierungssystem🎜Bevor Sie die Registrierungs- und Anmeldefunktionen implementieren, müssen Sie ein grundlegendes Authentifizierungssystem erstellen. Laravel bietet den Artisan-Befehl 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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage