Rumah >rangka kerja php >Laravel >Cara menggunakan Laravel untuk log masuk dan melompat

Cara menggunakan Laravel untuk log masuk dan melompat

PHPz
PHPzasal
2023-04-19 10:07:50697semak imbas

Laravel ialah rangka kerja pembangunan PHP yang popular Ia mudah dipelajari, cekap dalam pembangunan, selamat dan stabil serta disukai oleh ramai pembangun. Dalam Laravel, log masuk dan lompat adalah operasi yang sangat biasa, dan kami boleh melaksanakan fungsi ini dengan mudah.

Fungsi log masuk ialah salah satu fungsi penting tapak web, yang boleh memberikan pengguna ruang peribadi dan tahap akses yang lebih tinggi. Dalam Laravel, kami boleh melaksanakan fungsi log masuk dengan mudah. Di sini, kami akan meneroka cara menggunakan Laravel untuk melaksanakan log masuk dan lompat.

  1. Buat sistem pengesahan pengguna

Pertama, kita perlu mencipta sistem pengesahan pengguna. Laravel telah menyediakan kami sistem pengesahan siap pakai Kami hanya perlu menjalankan arahan berikut:

php artisan make:auth

Arahan ini secara automatik akan menjana fungsi seperti log masuk, pendaftaran dan kata laluan yang terlupa, serta yang sepadan. pandangan dan Pengawal untuk kegunaan kami.

  1. Buat paparan log masuk

Seterusnya, kita perlu mencipta paparan untuk log masuk. Kita boleh menggunakan Blade, enjin templat yang disediakan oleh Laravel, untuk membuat paparan. Cipta fail login.blade.php dalam folder resources/views/auth Kodnya adalah seperti berikut:

@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

Dalam paparan ini, kami menggunakan gaya Bootstrap dan borang yang disediakan oleh Laravel untuk menghasilkan borang. Selain itu, kami juga menambahkan arahan @csrf pada borang untuk mengelakkan serangan pemalsuan permintaan merentas tapak (CSRF).

  1. Memproses permintaan log masuk

Selepas borang log masuk dibuat, kami juga perlu memproses permintaan log masuk. Kita boleh menggunakan kaedah authenticate() yang disediakan oleh Laravel dalam kelas AuthLoginController untuk mengesahkan maklumat pengesahan pengguna. Jika pengesahan berjaya, kita boleh melompat melalui kaedah redirect() Laravel.

Kod adalah seperti berikut:

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

Dalam kod ini, kami menggunakan kaedah Auth::attempt() untuk mengesahkan input pengguna.

Jika pengesahan lulus, kita boleh menggunakan kaedah intended() Laravel untuk melompat. Kaedah ini secara automatik akan melompat ke halaman yang pengguna ingin akses Jika pengguna tidak menyatakannya, ia akan melompat ke halaman "papan pemuka" secara lalai.

Jika pengesahan gagal, gunakan kaedah ubah hala() Laravel untuk mengubah hala pengguna ke halaman log masuk dan menghantar mesej ralat semasa melompat.

  1. Lompat ke halaman yang ditentukan

Dalam Laravel, kita boleh menggunakan kelas Ubah hala dan kelas URL dalam laravel untuk melompat. Jika kita ingin mengubah hala ke laluan, kita boleh menggunakan kaedah redirect() Laravel. Jika kami ingin mengubah hala ke URL, kami boleh menggunakan kaedah URL::to() Laravel.

Contoh kod adalah seperti berikut:

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

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

Semasa proses ini, sila ingat bahawa anda bebas menggunakan kaedah lompat di atas dalam pengawal atau fail penghalaan untuk melompat ke halaman yang betul .

Kesimpulan

Laravel ialah rangka kerja PHP yang berkuasa dan mudah digunakan yang menyediakan banyak alatan dan ciri untuk memudahkan pembangunan web. Dalam artikel ini, kami mengajar cara melaksanakan proses log masuk pengguna dan melompat ke halaman tertentu dalam Laravel.

Kami mula-mula mencipta sistem pengesahan pengguna, kemudian mencipta borang log masuk, memproses permintaan log masuk dan menggunakan kelas Ubah hala dan kelas URL untuk melompat ke kod. Teknologi dan kaedah ini boleh membantu pembangun melaksanakan fungsi log masuk dan lompat yang berkuasa dengan cepat.

Pada masa yang sama, perlu diperhatikan bahawa keselamatan dan kestabilan sentiasa menjadi isu yang sangat penting. Kita perlu memastikan bahawa asas kod diuji dengan teliti dan mematuhi piawaian keselamatan terkini untuk mengekalkan kestabilan dan keselamatan. daripada sistem.

Atas ialah kandungan terperinci Cara menggunakan Laravel untuk log masuk dan melompat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn