Home > PHP Framework > Laravel > laravel login jump

laravel login jump

WBOY
Release: 2023-05-29 10:41:37
Original
406 people have browsed it

As an open source PHP web framework, Laravel has always been favored by web developers. Its powerful functions and ease of use are its advantages. For a web application, login is one of the very basic functions. In Laravel, we can quickly implement user login and jump.

Next, let’s talk about how to implement user login and jump in Laravel.

Preconditions

Before we start writing code, we first need to ensure the following conditions:

  • Have a Laravel environment;
  • has been turned on Laravel's authentication functionality.

If you have not enabled Laravel's identity authentication function, you can enter the project root directory in the terminal and enter the following command:

php artisan make:auth

For Laravel projects that have turned on the identity authentication function, we can follow the following steps to implement it.

User login

In Laravel, we can obtain the username and password entered by the user through a form. Generally speaking, we will set the Post method in the form and submit it to a controller called LoginController, as shown in the following code:

<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>
Copy after login

After the user fills in the form information, click the "Login" button , the data will be submitted to the LoginController controller.

We find the login method in the app/Http/Controllers/Auth/LoginController.php file and modify the content of the method as follows:

use IlluminateHttpRequest;

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

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

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

In the above code, we first obtain the user form The data submitted is email and password. Next, we try to authenticate the user using the Auth::attempt() method. If the user authentication is successful, follow-up operations are performed in the if statement, otherwise an error message is returned, prompting the user that the user name or password is incorrect, and the login interface is reloaded.

Jump

After the user successfully logs in, we need to jump the user to the specified page. In Laravel, there are two implementation methods, as follows.

Controller method

We can redirect to the specified page by adding the authenticated() method in the LoginController controller. This method will be called automatically after successful user authentication. The modified LoginController controller code is as follows:

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');
}
Copy after login

In the above code, we can see the authenticated() method, which redirects the user to the /home page.

Routing method

We can also implement redirection by registering a route after successful login. In the web.php file, we register the following route:

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

Route::group(['middleware' => 'auth'], function () {
    Route::get('/', function () {
        return redirect()->route('home');
    });
});
Copy after login

In the above code, we registered the default root route / in the auth middleware. When the user logs in successfully, it will automatically redirect to /home page.

Summary

The above is the method for user login and jump in Laravel. The identity authentication function provided by Laravel provides great help for us to quickly implement user login. At the same time, through controllers and routing, we can also control user jumps in detail.

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

source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template