Maison > cadre php > Laravel > Comment implémenter la fonction de saut après la connexion dans Laravel

Comment implémenter la fonction de saut après la connexion dans Laravel

PHPz
Libérer: 2023-04-21 11:15:40
original
1106 Les gens l'ont consulté

Laravel est actuellement le framework Web PHP le plus utilisé. Sa fonction de connexion est très couramment utilisée, et accéder à la page spécifiée après une connexion réussie est également l'une des exigences courantes. Cet article présentera en détail comment implémenter la fonction de saut après la connexion à Laravel.

1. Installez Laravel

Si vous n'avez pas installé Laravel, vous pouvez suivre les étapes ci-dessous pour l'installer :

  1. Installez le programme d'installation de Laravel : 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');
Copier après la connexion

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

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

php artisan make:controller LoginController
Copier après la connexion

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

use AuthenticatesUsers;

public function __construct()
{
    $this->middleware('guest')->except('logout');
}
Copier après la connexion

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

protected $redirectTo = '/dashboard';//修改为你要跳转的路径
Copier après la connexion

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);
    }
}
Copier après la connexion

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

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

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

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

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

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

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

    $this->incrementLoginAttempts($request);

    return $this->sendFailedLoginResponse($request);
}
Copier après la connexion

4. 总结

在本文中,我们学习了在 Laravel 中实现登录后跳转需要进行哪些操作。首先,我们需要使用 Auth 中间件实现登录功能。然后,我们通过修改登录控制器中的 $redirectTo Créer un nouveau projet : laravel new project_name

Entrez le répertoire du projet : cd project_name

Démarrez le serveur intégré de Laravel : php artisan serve

Dans cet article, nous utiliserons la configuration par défaut pour le développement, si vous avez utilisé d'autres configurations, elle peut être légèrement différente. 🎜🎜2. Implémenter la fonction de connexion🎜🎜Il est très simple d'implémenter la fonction de connexion dans Laravel, il suffit d'utiliser le middleware Auth. Ajoutez les routes suivantes au fichier routes/web.php : 🎜rrreee🎜Ces deux routes correspondent respectivement à l'affichage de la page de connexion et au traitement de l'opération de connexion. Parmi elles, la méthode LoginController@showLoginForm est utilisée pour afficher le formulaire de connexion, et la méthode LoginController@login est utilisée pour traiter la demande de connexion soumise par l'utilisateur. 🎜🎜Si vous n'avez pas encore créé de LoginController, vous pouvez le créer rapidement avec la commande suivante : 🎜rrreee🎜Dans LoginController, vous pouvez utiliser le AuthenticatesUsers fourni par Laravel Le trait implémente rapidement la fonction de connexion. Introduisez simplement ce trait dans la classe : 🎜rrreee🎜Par défaut, après une connexion réussie, vous accéderez à la page /home, qui peut être modifiée dans AuthLoginController >$redirectTo Attribut pour spécifier la page vers laquelle l'utilisateur accédera après une connexion réussie. 🎜rrreee🎜3. Implémenter un saut après la connexion🎜🎜Il est également très simple d'implémenter un saut après la connexion dans Laravel Il vous suffit de modifier l'attribut $redirectTo dans le contrôleur de connexion. Cependant, si vous souhaitez accéder à la page visitée auparavant par l'utilisateur après une connexion réussie, vous devez procéder comme suit : 🎜🎜🎜Créer un middleware RedirectIfAuthenticated🎜Dans Créez le fichier <code>RedirectIfAuthenticated.php dans le répertoire app/Http/Middleware et ajoutez le code suivant : 🎜rrreee🎜La méthode intendue dans le code va essayer pour rediriger l'utilisateur vers l'emplacement où il a initialement demandé la page, ou par défaut vers le chemin spécifié s'il n'y a pas d'emplacement précédent. 🎜
    🎜Enregistrez le middleware dans app/Http/Kernel.php
🎜Dans app/Http/Kernel.php Enregistrez le nouveau middleware dans le tableau <code>$routeMiddleware dans le fichier : 🎜rrreee
    🎜Modifier le contrôleur de connexion
🎜En connexion Dans le contrôleur , modifiez l'adresse cible de redirection après une connexion réussie vers la méthode prévue, afin qu'après la connexion, vous puissiez accéder à la page que l'utilisateur a visitée auparavant : 🎜rrreeerrreee🎜Résumé🎜🎜Dans cet article, nous avons appris. quelles opérations sont nécessaires pour implémenter le saut après la connexion à Laravel. Tout d’abord, nous devons utiliser le middleware Auth pour implémenter la fonction de connexion. Ensuite, nous implémentons le saut après la connexion en modifiant l'attribut $redirectTo dans le contrôleur de connexion. Enfin, nous créons un middleware et modifions le code dans le contrôleur de connexion pour accéder à la page que l'utilisateur a visitée auparavant après s'être connecté. 🎜🎜J'espère que cet article pourra vous aider à implémenter facilement la fonction de saut post-connexion dans Laravel ! 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal