Home  >  Article  >  PHP Framework  >  How to use Laravel to log in and jump

How to use Laravel to log in and jump

PHPz
PHPzOriginal
2023-04-19 10:07:50643browse

Laravel is a popular PHP development framework. It is easy to learn, efficient in development, safe and stable, and is loved by many developers. In Laravel, login and jump are very common operations, and we can implement these functions easily.

The login function is one of the essential functions of the website, which can provide users with private space and higher-level access rights. In Laravel, we can easily implement login functionality. Here, we will explore how to use Laravel to implement login and jump.

  1. Create a user authentication system

First, we need to create a user authentication system. Laravel has provided us with a ready-made authentication system. We only need to run the following command:

php artisan make:auth

This command will automatically generate login, registration, forgotten password and other functions, as well as corresponding views and controllers. for our use.

  1. Create login view

Next, we need to create a view for login. We can use Blade, the template engine provided by Laravel, to create views. Create a login.blade.php file in the resources/views/auth folder. The code is as follows:

@extends('layouts.app')

@section('content')

<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-8">
            <div class="card">
                <div class="card-header">{{ __('Login') }}</div>

                <div class="card-body">
                    <form method="POST" action="{{ route(&#39;login&#39;) }}">
                        @csrf

                        <div class="form-group row">
                            <label for="email" class="col-md-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label>

                            <div class="col-md-6">
                                <input id="email" type="email" class="form-control @error(&#39;email&#39;) is-invalid @enderror" name="email" value="{{ old(&#39;email&#39;) }}" required autocomplete="email" autofocus>

                                @error('email')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                            </div>
                        </div>

                        <div class="form-group row">
                            <label for="password" class="col-md-4 col-form-label text-md-right">{{ __('Password') }}</label>

                            <div class="col-md-6">
                                <input id="password" type="password" class="form-control @error(&#39;password&#39;) is-invalid @enderror" name="password" required autocomplete="current-password">

                                @error('password')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                            </div>
                        </div>

                        <div class="form-group row">
                            <div class="col-md-6 offset-md-4">
                                <div class="form-check">
                                    <input class="form-check-input" type="checkbox" name="remember" id="remember" {{ old(&#39;remember&#39;) ? &#39;checked&#39; : &#39;&#39; }}>

                                    <label class="form-check-label" for="remember">
                                        {{ __('Remember Me') }}
                                    </label>
                                </div>
                            </div>
                        </div>

                        <div class="form-group row mb-0">
                            <div class="col-md-8 offset-md-4">
                                <button type="submit" class="btn btn-primary">
                                    {{ __('Login') }}
                                </button>

                                @if (Route::has('password.request'))
                                    <a href="{{ route(&#39;password.request&#39;) }}">
                                        {{ __('Forgot Your Password?') }}
                                    </a>
                                @endif
                            </div>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>
@endsection

In this view, we use the Bootstrap style and the form generation function provided by Laravel to generate the form. In addition, we also added the @csrf directive to the form to prevent cross-site request forgery (CSRF) attacks.

  1. Processing login requests

After the login form is created, we still need to process the login request. We can use the authenticate() method provided by Laravel in the Auth\LoginController class to verify the user's authentication information. If the verification is successful, we can jump through Laravel's redirect() method.

The code is as follows:

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

    if (Auth::attempt($credentials)) {
        // 认证通过,跳转到指定页面
        return redirect()->intended('dashboard');
    }
    else {
        // 认证失败,跳转到登录页面
        return redirect()->route('login')->with('error', 'Invalid credentials');
    }
}

In this code, we use the Auth::attempt() method to verify the user's input.

If the verification passes, we can use Laravel's intended() method to jump. This method will automatically jump to the page the user wants to access. If the user does not specify it, it will jump to the "dashboard" page by default.

If authentication fails, use Laravel's redirect() method to redirect the user to the login page and pass an error message when jumping.

  1. Jump to the specified page

In Laravel, we can use the Redirect class and URL class in laravel to jump. If we want to redirect to a route, we can use Laravel's redirect() method. If we want to redirect to a URL, we can use Laravel's URL::to() method.

The code example is as follows:

// 重定向到路由
return redirect()->route('dashboard');

// 重定向到URL
return redirect(URL::to('/dashboard'));

During this process, please remember that you are free to use the above jump method in the controller or routing file to jump to the correct page.

Conclusion

Laravel is a powerful and easy-to-use PHP framework that provides many tools and features to simplify web development. In this article, we teach how to implement the process of user login and jumping to a specified page in Laravel.

We first created a user authentication system, then created the login form, processed the login request, and used the Redirect class and URL class to jump to the code. These technologies and methods can help developers quickly implement powerful login and jump functions.

At the same time, it is worth noting that security and stability are always a very important issue. We need to ensure that the code base has been rigorously tested and complies with the latest security standards to maintain the stability and security of the system.

The above is the detailed content of How to use Laravel to log in and jump. 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