Heim PHP-Framework Laravel Laravel implementiert die Login-Registrierung

Laravel implementiert die Login-Registrierung

May 20, 2023 pm 09:10 PM

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

});

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

}

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

}

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

}

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 标记。

@csrf

<div class="form-group row">
    <label for="email" class="col-sm-4 col-form-label text-md-right">{{ __('Email Address') }}</label>

    <div class="col-md-6">
        <input id="email" type="email" class="form-control{{ $errors->has('email') ? ' is-invalid' : '' }}" name="email" value="{{ old('email') }}" required autofocus>

        @if ($errors->has('email'))
            <span class="invalid-feedback" role="alert">
                <strong>{{ $errors->first('email') }}</strong>
            </span>
        @endif
    </div>
</div>

<div class="form-group row">
    <label for="password" class="col-md-4 col-form-label text-md-right">{{ __('Password') }}</label>

    <div class="col-md-6">
        <input id="password" type="password" class="form-control{{ $errors->has('password') ? ' is-invalid' : '' }}" name="password" required>

        @if ($errors->has('password'))
            <span class="invalid-feedback" role="alert">
                <strong>{{ $errors->first('password') }}</strong>
            </span>
        @endif
    </div>
</div>

<div class="form-group row">
    <div class="col-md-6 offset-md-4">
        <div class="form-check">
            <input class="form-check-input" type="checkbox" name="remember" id="remember" {{ old('remember') ? 'checked' : '' }}>

            <label class="form-check-label" for="remember">
                {{ __('Remember Me') }}
            </label>
        </div>
    </div>
</div>

<div class="form-group row mb-0">
    <div class="col-md-8 offset-md-4">
        <button type="submit" class="btn btn-primary">
            {{ __('Login') }}
        </button>

        @if (Route::has('password.request'))
            <a class="btn btn-link" href="{{ route('password.request') }}">
                {{ __('Forgot Your Password?') }}
            </a>
        @endif
    </div>
</div>
Nach dem Login kopieren

注意,我们使用了 Blade 模板引擎的 @csrf 和 @if 语句来生成必要的 CSRF 令牌并显示验证错误。

注册视图
在 register.blade.php 文件中,我们可以使用 Laravel 的 Form 帮助器创建注册表单。这个函数自动为表单添加 CSRF 令牌,并为输入字段编写 HTML 标记。

@csrf

<div class="form-group row">
    <label for="name" class="col-md-4 col-form-label text-md-right">{{ __('Name') }}</label>

    <div class="col-md-6">
        <input id="name" type="text" class="form-control{{ $errors->has('name') ? ' is-invalid' : '' }}" name="name" value="{{ old('name') }}" required autofocus>

        @if ($errors->has('name'))
            <span class="invalid-feedback" role="alert">
                <strong>{{ $errors->first('name') }}</strong>
            </span>
        @endif
    </div>
</div>

<div class="form-group row">
    <label for="email" class="col-md-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label>

    <div class="col-md-6">
        <input id="email" type="email" class="form-control{{ $errors->has('email') ? ' is-invalid' : '' }}" name="email" value="{{ old('email') }}" required>

        @if ($errors->has('email'))
            <span class="invalid-feedback" role="alert">
                <strong>{{ $errors->first('email') }}</strong>
            </span>
        @endif
    </div>
</div>

<div class="form-group row">
    <label for="password" class="col-md-4 col-form-label text-md-right">{{ __('Password') }}</label>

    <div class="col-md-6">
        <input id="password" type="password" class="form-control{{ $errors->has('password') ? ' is-invalid' : '' }}" name="password" required>

        @if ($errors->has('password'))
            <span class="invalid-feedback" role="alert">
                <strong>{{ $errors->first('password') }}</strong>
            </span>
        @endif
    </div>
</div>

<div class="form-group row">
    <label for="password-confirm" class="col-md-4 col-form-label text-md-right">{{ __('Confirm Password') }}</label>

    <div class="col-md-6">
        <input id="password-confirm" type="password" class="form-control" name="password_confirmation" required>
    </div>
</div>

<div class="form-group row mb-0">
    <div class="col-md-6 offset-md-4">
        <button type="submit" class="btn btn-primary">
            {{ __('Register') }}
        </button>
    </div>
</div>
Nach dem Login kopieren

注意,我们使用了 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!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

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

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was ist besser, Django oder Laravel? Was ist besser, Django oder Laravel? Mar 28, 2025 am 10:41 AM

Sowohl Django als auch Laravel sind Full-Stack-Frameworks. Django eignet sich für Python -Entwickler und komplexe Geschäftslogik, während Laravel für PHP -Entwickler und elegante Syntax geeignet ist. 1.Django basiert auf Python und folgt der "batteriebetriebenen" Philosophie, die für schnelle Entwicklung und hohe Parallelität geeignet ist. 2. Laravel basiert auf PHP, der die Entwicklererfahrung betont und für kleine bis mittlere Projekte geeignet ist.

Laravel und das Backend: Logik der Webanwendungen mit Strom versorgen Laravel und das Backend: Logik der Webanwendungen mit Strom versorgen Apr 11, 2025 am 11:29 AM

Wie spielt Laravel eine Rolle in der Backend -Logik? Es vereinfacht und verbessert die Backend -Entwicklung durch Routing -Systeme, eloquentorm, Authentifizierung und Autorisierung, Ereignis und Zuhörer sowie Leistungsoptimierung. 1. Das Routing -System ermöglicht die Definition der URL -Struktur und die Anforderungsverarbeitungslogik. 2.Loquentorm vereinfacht die Datenbankinteraktion. 3. Das Authentifizierungs- und Autorisierungssystem ist für die Benutzerverwaltung geeignet. 4. Die Ereignis und der Hörer implementieren locker gekoppelte Codestruktur. 5. Leistungsoptimierung verbessert die Anwendungseffizienz durch Zwischenspeicherung und Warteschlange.

Welches ist besser PHP oder Laravel? Welches ist besser PHP oder Laravel? Mar 27, 2025 pm 05:31 PM

PHP und Laravel sind nicht direkt vergleichbar, da Laravel ein PHP-basierter Framework ist. 1.PHP ist für kleine Projekte oder schnelle Prototypen geeignet, da es einfach und direkt ist. 2. Laravel ist für große Projekte oder effiziente Entwicklung geeignet, da es umfangreiche Funktionen und Werkzeuge bietet, aber eine steile Lernkurve aufweist und möglicherweise nicht so gut ist wie reines PHP.

Ist Laravel ein Frontend oder ein Backend? Ist Laravel ein Frontend oder ein Backend? Mar 27, 2025 pm 05:31 PM

LaravelisabackendFrameworkBuiltonPhp, entworfene WebApplicationDevelopment.itfocuseSonserver-Sidelogic, DatabaSemanagement und Applicationsstruktur und CanBeintegratedWithFrontendTechnologies-ähnlich.

Beispiel für Laravel -Einführung Beispiel für Laravel -Einführung Apr 18, 2025 pm 12:45 PM

Laravel ist ein PHP -Framework zum einfachen Aufbau von Webanwendungen. Es bietet eine Reihe leistungsstarker Funktionen, darunter: Installation: Installieren Sie die Laravel CLI weltweit mit Komponisten und erstellen Sie Anwendungen im Projektverzeichnis. Routing: Definieren Sie die Beziehung zwischen der URL und dem Handler in Routen/Web.php. Ansicht: Erstellen Sie eine Ansicht in Ressourcen/Ansichten, um die Benutzeroberfläche der Anwendung zu rendern. Datenbankintegration: Bietet eine Out-of-the-Box-Integration in Datenbanken wie MySQL und verwendet Migration, um Tabellen zu erstellen und zu ändern. Modell und Controller: Das Modell repräsentiert die Datenbankentität und die Controller -Prozesse HTTP -Anforderungen.

Laravels Vielseitigkeit: Von einfachen Standorten zu komplexen Systemen Laravels Vielseitigkeit: Von einfachen Standorten zu komplexen Systemen Apr 13, 2025 am 12:13 AM

Das Laravel -Entwicklungsprojekt wurde aufgrund seiner Flexibilität und Kraft ausgewählt, um den Bedürfnissen unterschiedlicher Größen und Komplexität zu entsprechen. Laravel bietet Routing-System, eloquentorm, Artisan Command Line und andere Funktionen und unterstützt die Entwicklung von einfachen Blogs bis hin zu komplexen Systemen auf Unternehmensebene.

Wie man laravel lernt wie man laravel kostenlos lernt Wie man laravel lernt wie man laravel kostenlos lernt Apr 18, 2025 pm 12:51 PM

Möchten Sie das Laravel -Rahmen lernen, aber unter keinen Ressourcen oder dem wirtschaftlichen Druck leiden? Dieser Artikel bietet Ihnen ein kostenloses Lernen von Laravel und lehrt Sie, wie Sie Ressourcen wie Online -Plattformen, Dokumente und Community -Foren verwenden, um eine solide Grundlage für Ihre PHP -Entwicklungsreise zu schaffen.

Warum ist Laravel so beliebt? Warum ist Laravel so beliebt? Apr 02, 2025 pm 02:16 PM

Die Popularität von Laravel umfasst seinen vereinfachten Entwicklungsprozess, eine angenehme Entwicklungsumgebung und umfangreiche Merkmale. 1) Es absorbiert die Designphilosophie von RubyonRails und kombiniert die Flexibilität von PHP. 2) Bereitstellung von Werkzeugen wie eloquentorm, Blade Template Engine usw. zur Verbesserung der Entwicklungseffizienz. 3) Sein MVC -Architektur- und Abhängigkeitsinjektionsmechanismus macht den Code modularer und prüfbarer. 4) Bietet leistungsstarke Debugging -Tools und Leistungsoptimierungsmethoden wie Caching -Systeme und Best Practices.

See all articles