Home >PHP Framework >Laravel >How to implement the jump function after login in laravel

How to implement the jump function after login in laravel

PHPz
PHPzOriginal
2023-04-21 10:06:21891browse

Laravel is currently the most widely used PHP web framework. Its login function is very commonly used, and jumping to a specified page after successful login is also one of the common requirements. This article will introduce in detail how to implement the jump function after login in Laravel.

1. Install Laravel

If you have not installed Laravel, you can follow the following steps to install it:

  1. Install Laravel installer: composer global require laravel/installer
  2. Create a new project:laravel new project_name
  3. Enter the project directory:cd project_name
  4. Start Laravel built-in server: php artisan serve

In this article, we will use the default configuration for development, if you have used other configurations, it may be slightly different.

2. Implement the login function

It is very simple to implement the login function in Laravel, you only need to use the Auth middleware. Add the following routes to the routes/web.php file:

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

These two routes correspond to the display of the login page and the processing of the login operation respectively. Among them, the LoginController@showLoginForm method is used to display the login form, and the LoginController@login method is used to process the login request submitted by the user.

If you have not created LoginController, you can quickly create it with the following command:

php artisan make:controller LoginController

In LoginController, you can use the ## provided by Laravel #AuthenticatesUsers trait quickly implements login functionality. Just introduce this trait in the class:

use AuthenticatesUsers;

public function __construct()
{
    $this->middleware('guest')->except('logout');
}
By default, after successful login, you will jump to the

/home page, which can be found in Auth\LoginController Modify the $redirectTo attribute to specify the page that the user will jump to after successful login.

protected $redirectTo = '/dashboard';//修改为你要跳转的路径
3. Implementing a jump after login

It is also very simple to implement a jump after login in Laravel. You only need to modify the

$redirectTo attribute in the login controller. Can. However, if you want to jump to the page the user visited before after successful login, you need to do the following:

    Create
  1. RedirectIfAuthenticated middleware
Create the

RedirectIfAuthenticated.php file in the app/Http/Middleware directory, and add the following code: intended

method in the

<?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);
    }
}
code Will attempt to redirect the user to the location where they originally requested the page, or default to the specified path if there is no previous location.
    Register middleware in
  1. app/Http/Kernel.php
In

app/Http/Kernel.php Register the new middleware in the $routeMiddleware array in the file:

protected $routeMiddleware = [
    // ... 其他中间件省略
    'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
];
    Modify the login controller
In the login controller, add After successful login, the redirected target address is changed to the

intended method, which can jump to the page the user visited before after login:

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. Summary

In this article, we learned what operations are needed to implement jump after login in Laravel. First, we need to use

Auth middleware to implement the login function. Then, we implement the jump after login by modifying the $redirectTo attribute in the login controller. Finally, we create middleware and modify the code in the login controller to jump to the page the user visited before after logging in.

I hope this article can help you easily implement the post-login jump function in Laravel!

The above is the detailed content of How to implement the jump function after login in laravel. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn