Heim > PHP-Framework > Laravel > Hauptteil

Laravel-Login-Sprung

WBOY
Freigeben: 2023-05-29 10:41:37
Original
374 Leute haben es durchsucht

Als Open-Source-PHP-Webframework wurde Laravel schon immer von Webentwicklern bevorzugt. Seine leistungsstarken Funktionen und die einfache Bedienung sind seine Vorteile. Für eine Webanwendung gehört die Anmeldung zu den ganz grundlegenden Funktionen. In Laravel können wir Benutzeranmeldung und -sprung schnell implementieren.

Lassen Sie uns nun darüber sprechen, wie Sie die Benutzeranmeldung und den Sprung in Laravel implementieren.

Voraussetzungen

Bevor wir mit dem Schreiben von Code beginnen, müssen wir zunächst die folgenden Bedingungen sicherstellen:

  • Eine Laravel-Umgebung haben;
  • Die Identitätsauthentifizierungsfunktion von Laravel wurde aktiviert.

Wenn Sie die Identitätsauthentifizierungsfunktion von Laravel nicht aktiviert haben, können Sie im Terminal das Stammverzeichnis des Projekts eingeben und den folgenden Befehl eingeben:

php artisan make:auth

Für Laravel-Projekte, die die Identitätsauthentifizierungsfunktion aktiviert haben, können wir folgen Führen Sie die folgenden Schritte aus.

Benutzeranmeldung

In Laravel können wir den vom Benutzer eingegebenen Benutzernamen und das Passwort über ein Formular erhalten. Im Allgemeinen legen wir die Post-Methode im Formular fest und senden sie an einen Controller namens LoginController, wie im folgenden Code gezeigt:

<form method="POST" action="{{ route('login') }}">
    @csrf

    <div>
        <label for="email">邮箱</label>

        <div>
            <input id="email" type="email" name="email" value="{{ old('email') }}" required autocomplete="email" autofocus>
        </div>
    </div>

    <div>
        <label for="password">密码</label>

        <div>
            <input id="password" type="password" name="password" required autocomplete="current-password">
        </div>
    </div>

    <div>
        <div>
            <div>
                <input type="checkbox" name="remember" id="remember" {{ old('remember') ? 'checked' : '' }}>

                <label for="remember">
                    记住我
                </label>
            </div>
        </div>
    </div>

    <div>
        <div>
            <button type="submit">
                登录
            </button>

            @if (Route::has('password.request'))
                <a href="{{ route('password.request') }}">
                    忘记密码了?
                </a>
            @endif
        </div>
    </div>
</form>
Nach dem Login kopieren

Nachdem der Benutzer die Formularinformationen ausgefüllt und auf die Schaltfläche „Anmelden“ geklickt hat, wird dies der Fall sein übermittelte Daten an den LoginController-Controller.

Wir finden die Anmeldemethode in der Datei app/Http/Controllers/Auth/LoginController.php und ändern den Inhalt der Methode wie folgt:

use IlluminateHttpRequest;

public function login(Request $request)
{
    $credentials = $request->only('email', 'password');

    if (Auth::attempt($credentials)) {
        // 认证成功后的操作
    }

    return back()->withErrors(
        ['email' => '用户名或密码错误']
    );
}
Nach dem Login kopieren

Im obigen Code erhalten wir zunächst die vom Benutzerformular übermittelten Daten. das heißt, die E-Mail-Adresse und das Passwort. Als nächstes versuchen wir, den Benutzer mithilfe der Methode Auth::attempt() zu authentifizieren. Wenn die Benutzerauthentifizierung erfolgreich ist, werden Folgevorgänge in der if-Anweisung ausgeführt. Andernfalls wird eine Fehlermeldung zurückgegeben, die den Benutzer darauf hinweist, dass der Benutzername oder das Kennwort falsch ist, und die Anmeldeschnittstelle wird neu geladen.

Springen

Nachdem sich der Benutzer erfolgreich angemeldet hat, müssen wir den Benutzer zur angegebenen Seite weiterleiten. In Laravel gibt es zwei Implementierungsmethoden:

Controller-Methode

Wir können zur angegebenen Seite umleiten, indem wir die Methode „authenticated()“ im LoginController-Controller hinzufügen. Diese Methode wird nach erfolgreicher Benutzerauthentifizierung automatisch aufgerufen. Der geänderte Code des LoginController-Controllers lautet wie folgt:

use IlluminateHttpRequest;

public function login(Request $request)
{
    $credentials = $request->only('email', 'password');

    if (Auth::attempt($credentials)) {
        return redirect()->intended('/home');
    }

    return back()->withErrors(
        ['email' => '用户名或密码错误']
    );
}

protected function authenticated(Request $request, $user)
{
    return redirect('/home');
}
Nach dem Login kopieren

Im obigen Code können wir die Methode „authenticated()“ sehen, die den Benutzer zur Seite /home umleitet.

Routing-Methode

Wir können die Umleitung auch implementieren, indem wir nach erfolgreicher Anmeldung eine Route registrieren. In der Datei web.php registrieren wir die folgende Route:

Route::get('/home', function () {
    return view('home');
})->name('home');

Route::group(['middleware' => 'auth'], function () {
    Route::get('/', function () {
        return redirect()->route('home');
    });
});
Nach dem Login kopieren

Im obigen Code haben wir die Standard-Root-Route / in der Authentifizierungs-Middleware registriert. Wenn sich der Benutzer erfolgreich anmeldet, wird er automatisch zur Seite /home weitergeleitet.

Zusammenfassung

Das Obige ist die Methode für die Benutzeranmeldung und den Sprung in Laravel. Die von Laravel bereitgestellte Identitätsauthentifizierungsfunktion bietet uns eine große Hilfe bei der schnellen Implementierung der Benutzeranmeldung. Gleichzeitig können wir durch Controller und Routing auch Benutzersprünge im Detail steuern.

Das obige ist der detaillierte Inhalt vonLaravel-Login-Sprung. 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