Heim  >  Artikel  >  PHP-Framework  >  So implementieren Sie die Sprungfunktion nach der Anmeldung in Laravel

So implementieren Sie die Sprungfunktion nach der Anmeldung in Laravel

PHPz
PHPzOriginal
2023-04-21 10:06:21814Durchsuche

Laravel ist derzeit das am weitesten verbreitete PHP-Webframework. Seine Anmeldefunktion wird sehr häufig verwendet, und das Springen zur angegebenen Seite nach erfolgreicher Anmeldung ist ebenfalls eine der häufigsten Anforderungen. In diesem Artikel wird detailliert beschrieben, wie die Sprungfunktion nach der Anmeldung in Laravel implementiert wird.

1. Installieren Sie Laravel

Wenn Sie Laravel nicht installiert haben, können Sie die folgenden Schritte ausführen, um es zu installieren:

  1. Laravel-Installationsprogramm installieren: composer global require laravel/installer
  2. composer global require laravel/installer
  3. 创建新项目:laravel new project_name
  4. 进入项目目录:cd project_name
  5. 启动 Laravel 内置服务器:php artisan serve

在本文中,我们将使用默认配置进行开发,如果您使用了其他配置,可能会稍有不同。

2. 实现登录功能

在 Laravel 中实现登录功能非常简单,只需要使用 Auth 中间件即可。在 routes/web.php 文件中增加以下路由:

Route::get('/login', 'LoginController@showLoginForm')->name('login');
Route::post('/login', 'LoginController@login');

这两个路由分别对应登录页面的显示和登录操作的处理。其中,LoginController@showLoginForm 方法用于显示登录表单,LoginController@login 方法用于处理用户提交的登录请求。

如果您还没有创建 LoginController,可以通过以下命令快速创建:

php artisan make:controller LoginController

LoginController 中,可以使用 Laravel 提供的 AuthenticatesUsers trait 快速实现登录功能。只需要在类中引入此 trait 即可:

use AuthenticatesUsers;

public function __construct()
{
    $this->middleware('guest')->except('logout');
}

默认情况下,登录成功后会跳转到 /home 页面,可以在 AuthLoginController 中修改 $redirectTo 属性来指定用户登录成功后跳转的页面。

protected $redirectTo = '/dashboard';//修改为你要跳转的路径

3. 实现登录后跳转

在 Laravel 中实现登录后跳转也非常简单,只需要在登录控制器中修改 $redirectTo 属性即可。但是,如果您希望登录成功后跳转到用户之前访问的页面,那么需要进行以下操作:

  1. 创建 RedirectIfAuthenticated 中间件

app/Http/Middleware 目录下创建 RedirectIfAuthenticated.php 文件,并添加以下代码:

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Auth;
use Illuminate\Http\Request;

class RedirectIfAuthenticated
{
    public function handle(Request $request, Closure $next, $guard = null)
    {
        if (Auth::guard($guard)->check()) {
            return redirect()->intended('/dashboard');//修改为登录成功后要跳转的路径
        }

        return $next($request);
    }
}

代码中的 intended 方法会尝试将用户重定向到他们最初请求页面的位置,如果没有先前的位置,则默认重定向到指定的路径。

  1. app/Http/Kernel.php 中注册中间件

app/Http/Kernel.php 文件中的 $routeMiddleware 数组中注册新增的中间件:

protected $routeMiddleware = [
    // ... 其他中间件省略
    'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
];
  1. 修改登录控制器

在登录控制器中,将登录成功后重定向的目标地址修改为 intended 方法,即可实现登录后跳转到用户之前访问的页面:

protected $redirectTo = '/dashboard';//删除这行
public function login(Request $request)
{
    $this->validateLogin($request);

    if ($this->attemptLogin($request)) {
        // 登录成功后跳转到用户之前访问的页面
        return redirect()->intended('/dashboard');
    }

    $this->incrementLoginAttempts($request);

    return $this->sendFailedLoginResponse($request);
}

4. 总结

在本文中,我们学习了在 Laravel 中实现登录后跳转需要进行哪些操作。首先,我们需要使用 Auth 中间件实现登录功能。然后,我们通过修改登录控制器中的 $redirectTo Neues Projekt erstellen: laravel neuer Projektname

Geben Sie das Projektverzeichnis ein: cd Projektname

Starten Sie den integrierten Laravel-Server: php artisan dienen

In diesem Artikel verwenden wir die Standardkonfiguration für die Entwicklung. Wenn Sie andere Konfigurationen verwendet haben, kann diese geringfügig abweichen. 🎜🎜2. Implementieren Sie die Anmeldefunktion🎜🎜Es ist sehr einfach, die Anmeldefunktion in Laravel zu implementieren, verwenden Sie einfach die Middleware Auth. Fügen Sie der Datei routes/web.php die folgenden Routen hinzu: 🎜rrreee🎜Diese beiden Routen entsprechen der Anzeige der Anmeldeseite bzw. der Verarbeitung des Anmeldevorgangs. Unter anderem wird die Methode LoginController@showLoginForm zum Anzeigen des Anmeldeformulars und die Methode LoginController@login zum Verarbeiten der vom Benutzer übermittelten Anmeldeanforderung verwendet. 🎜🎜Wenn Sie noch keinen LoginController erstellt haben, können Sie ihn schnell mit dem folgenden Befehl erstellen: 🎜rrreee🎜In LoginController können Sie den AuthenticatesUsers verwenden bereitgestellt von Laravel Das Merkmal implementiert schnell die Anmeldefunktion. Führen Sie einfach dieses Merkmal in der Klasse ein: 🎜rrreee🎜Standardmäßig springen Sie nach erfolgreicher Anmeldung zur Seite /home, die in AuthLoginController >$redirectTo geändert werden kann -Attribut, um die Seite anzugeben, zu der der Benutzer nach erfolgreicher Anmeldung springen soll. 🎜rrreee🎜3. Einen Sprung nach der Anmeldung implementieren🎜🎜Es ist auch sehr einfach, einen Sprung nach der Anmeldung in Laravel zu implementieren. Sie müssen nur das Attribut $redirectTo im Login-Controller ändern. Wenn Sie jedoch nach erfolgreicher Anmeldung zu der Seite springen möchten, die der Benutzer zuvor besucht hat, müssen Sie Folgendes tun: 🎜🎜🎜Erstellen Sie die Middleware RedirectIfAuthenticated🎜In Erstellen Sie die Datei <code>RedirectIfAuthenticated.php im Verzeichnis app/Http/Middleware und fügen Sie den folgenden Code hinzu: 🎜rrreee🎜Die intended-Methode im Code wird es versuchen um den Benutzer an den Ort umzuleiten, an dem er die Seite ursprünglich angefordert hat, oder es wird standardmäßig der angegebene Pfad verwendet, wenn kein vorheriger Ort vorhanden ist. 🎜
    🎜Middleware in app/Http/Kernel.php
registrieren 🎜In app/Http/Kernel.php Registrieren Sie die neue Middleware im Array <code>$routeMiddleware in der Datei: 🎜rrreee
    🎜Ändern Sie den Login-Controller
🎜In login Im Controller , ändern Sie die Weiterleitungszieladresse nach erfolgreicher Anmeldung in die Methode beabsichtigt, damit Sie nach der Anmeldung zu der Seite springen können, die der Benutzer zuvor besucht hat: 🎜rrreeerrreee🎜🎜In diesem Artikel haben wir gelernt Welche Vorgänge sind erforderlich, um einen Sprung nach der Anmeldung in Laravel zu implementieren? Zuerst müssen wir die Middleware Auth verwenden, um die Anmeldefunktion zu implementieren. Anschließend implementieren wir den Sprung nach der Anmeldung, indem wir das Attribut $redirectTo im Login-Controller ändern. Schließlich erstellen wir Middleware und ändern den Code im Login-Controller, um nach der Anmeldung zu der Seite zu springen, die der Benutzer zuvor besucht hat. 🎜🎜Ich hoffe, dieser Artikel kann Ihnen dabei helfen, die Post-Login-Sprungfunktion in Laravel einfach zu implementieren! 🎜

Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Sprungfunktion nach der Anmeldung in Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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