Rumah rangka kerja php Laravel laravel melaksanakan pendaftaran log masuk

laravel melaksanakan pendaftaran log masuk

May 20, 2023 pm 09:10 PM

Laravel ialah rangka kerja PHP popular yang menyediakan persekitaran pembangunan yang berkuasa yang memudahkan untuk membina aplikasi web. Salah satu ciri penting ialah sistem pengesahan Laravel sendiri, yang membolehkan anda melaksanakan pengesahan pengguna dengan cepat, termasuk log masuk dan pendaftaran. Dalam artikel ini, kami akan menunjukkan cara melaksanakan pendaftaran log masuk menggunakan Laravel.

Persekitaran Penerapan
Sebelum kita mula melaksanakan pengesahan, kita perlu memastikan bahawa persekitaran Laravel telah dikonfigurasikan dan sambungan pangkalan data telah dikonfigurasikan. Jika anda belum memasang Laravel lagi, anda boleh merujuk kepada panduan pemasangan dalam dokumentasi rasmi. Dalam aplikasi Laravel, kami mencipta fail dan struktur direktori yang diperlukan menggunakan alat baris arahan Artisan. Daripada baris arahan, kita boleh mencipta aplikasi Laravel baharu menggunakan arahan berikut:

composer create-project --prefer-dist laravel/laravel blog

Selepas mencipta, navigasi ke aplikasi In direktori root, jalankan arahan berikut untuk menjana kekunci aplikasi:

php artisan key:generate

Daftar Laluan
Dalam Laravel, penghalaan ialah jambatan yang menyambungkan URI dan kaedah pengawal yang sepadan. Untuk mendaftarkan laluan pengesahan kami, kami perlu mengemas kini fail route/web.php. Dalam fail ini, kami mentakrifkan laluan untuk aplikasi, yang termasuk laluan log masuk dan pendaftaran.

Pertama, kita perlu menentukan laluan yang menghantar permintaan POST ke /mendaftar dan mengikatnya dengan kaedah register() RegisterController. Ini akan memberikan borang pendaftaran di mana pengguna boleh mengisi nama pengguna dan kata laluan mereka.

Route::post('/register', 'AuthRegisterController@register')->name('register');

Seterusnya, kita perlu menentukan permintaan POST untuk dihantar ke /laluan log masuk dan ikatkannya pada kaedah log masuk() LoginController. Ini akan memberikan borang log masuk di mana pengguna boleh mengisi nama log masuk dan kata laluan mereka. Jika pengguna tidak mempunyai kelayakan yang sah untuk mengesahkan, aplikasi akan mengubah hala ke borang log masuk.

Route::post('/login', 'AuthLoginController@login')->name('login');

Akhir sekali, kita perlu mentakrifkan semua laluan yang dilindungi. Dalam Laravel, kita boleh menggunakan perisian tengah auth untuk memastikan bahawa pengguna telah disahkan. Perisian tengah ini secara automatik akan mengubah hala pengguna yang tidak disahkan ke laluan /log masuk.

Route::middleware(['auth'])->group(function () {

// your protected routes go here
Salin selepas log masuk

});

Pengawal Pengendalian
Kami mempunyai laluan yang diperlukan ditakrifkan, kini ia perlu dikendalikan dalam pengawal. Dalam Laravel, pengawal ialah kelas yang mengendalikan permintaan HTTP tertentu dan kaedah dalam pengawal mengembalikan respons HTTP. Dalam aplikasi, kita perlu mencipta dua pengawal untuk mengendalikan permintaan pendaftaran dan log masuk.

Dalam direktori app/Http/Controllers/Auth, buat dua fail, LoginController.php dan RegisterController.php. Kedua-dua fail ini ialah kelas pengawal yang disertakan dengan Laravel. Dalam pengawal ini, kita perlu mengatasi kaedah lalai Laravel untuk menyediakan fungsi tersuai untuk permintaan log masuk dan pendaftaran.

Pengawal Log Masuk
Mari lihat dahulu pengawal LoginController.php. Pengawal ini mengandungi dua kaedah: showLoginForm() dan log masuk().

Kaedah showLoginForm() mengembalikan paparan borang log masuk (resources/views/auth/login.blade.php), yang mengandungi borang di mana pengguna boleh memasukkan nama log masuk dan kata laluan mereka. Kaedah ini disediakan oleh Laravel.

fungsi awam showLoginForm()
{

return view('auth.login');
Salin selepas log masuk

}

kaedah log masuk() ialah tempat logik log masuk sebenarnya dilaksanakan. Kaedah ini menerima contoh IlluminateHttpRequest dan mengesahkan input pengguna menggunakan kaedah validate() contoh. Jika pengesahan borang berjaya, Laravel akan mencari pengguna secara automatik dengan log masuk dan kata laluan yang diberikan dan log masuk ke dalam aplikasi.

log masuk fungsi awam(Request $request)
{

$request->validate([
    'email' => 'required|string|email',
    'password' => 'required|string',
    'remember' => 'boolean'
]);

$credentials = $request->only('email', 'password');

if (Auth::attempt($credentials, $request->remember)) {
    return redirect()->intended('dashboard');
}

return redirect()->back()->withInput($request->only('email', 'remember'));
Salin selepas log masuk

}

Perhatikan bahawa kaedah percubaan() akan menyemak secara automatik sama ada kata laluan itu betul berdasarkan tauliah yang diberi. Jika kata laluan salah, palsu akan dikembalikan.

Jika pengguna telah berjaya mengesahkan dan URL yang mereka minta sebelum ini disimpan (biasanya URL disekat oleh perisian tengah auth), kami boleh menggunakan fungsi pembantu Laravel intended() untuk mengubah hala mereka ke URL tersebut. Jika tiada URL disimpan, ubah hala ke papan pemuka bahagian hadapan (/papan pemuka).

Register Controller
Seterusnya kita lihat pada RegisterController.php controller. Sebagai tambahan kepada kaedah lalai Laravel, kita juga perlu melaksanakan kaedah register(). Kaedah

register() sangat serupa dengan kaedah log masuk(). Ia menerima contoh IlluminateHttpRequest dan mengesahkan input pengguna menggunakan kaedah validate() contoh. Jika pengesahan borang berjaya, Laravel akan mencipta pengguna baharu dan menyimpannya ke pangkalan data. Kami kemudiannya boleh menggunakan tingkah laku lalai Laravel untuk log masuk pengguna ke dalam aplikasi.

daftar fungsi awam(Request $request)
{

$request->validate([
    'name' => 'required|string|max:255',
    'email' => 'required|string|email|max:255|unique:users',
    'password' => 'required|string|min:6|confirmed',
]);

$user = User::create([
    'name' => $request->name,
    'email' => $request->email,
    'password' => Hash::make($request->password),
]);

Auth::login($user);

return redirect()->intended('dashboard');
Salin selepas log masuk

}

Dalam pengawal pendaftaran kita boleh menggunakan fungsi tambahan Hash untuk menyulitkan kata laluan. Jika pengesahan kata laluan berjaya, kami mencipta pengguna baharu dan log masuk dia ke dalam aplikasi.

Lihat Lapisan
Sekarang kita telah menentukan laluan dan pengawal yang diperlukan, kita perlu mencipta paparan pengesahan.

在 resources/views/auth 目录中,我们可以创建 login.blade.php 和 register.blade.php 两个视图文件。这些视图包含登录和注册表单,使用了一些 Laravel 帮助程序,可以处理表单验证并显示错误消息。

登录视图
在 login.blade.php 文件中,我们可以使用 Laravel 的 Form 辅助函数创建登录表单。这个函数会自动为表单添加 CSRF 令牌,并为输入字段编写 HTML 标记。

@csrf

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

    <div class="col-md-6">
        <input id="email" type="email" class="form-control{{ $errors->has('email') ? ' is-invalid' : '' }}" name="email" value="{{ old('email') }}" required autofocus>

        @if ($errors->has('email'))
            <span class="invalid-feedback" role="alert">
                <strong>{{ $errors->first('email') }}</strong>
            </span>
        @endif
    </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{{ $errors->has('password') ? ' is-invalid' : '' }}" name="password" required>

        @if ($errors->has('password'))
            <span class="invalid-feedback" role="alert">
                <strong>{{ $errors->first('password') }}</strong>
            </span>
        @endif
    </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('remember') ? 'checked' : '' }}>

            <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 class="btn btn-link" href="{{ route('password.request') }}">
                {{ __('Forgot Your Password?') }}
            </a>
        @endif
    </div>
</div>
Salin selepas log masuk

注意,我们使用了 Blade 模板引擎的 @csrf 和 @if 语句来生成必要的 CSRF 令牌并显示验证错误。

注册视图
在 register.blade.php 文件中,我们可以使用 Laravel 的 Form 帮助器创建注册表单。这个函数自动为表单添加 CSRF 令牌,并为输入字段编写 HTML 标记。

@csrf

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

    <div class="col-md-6">
        <input id="name" type="text" class="form-control{{ $errors->has('name') ? ' is-invalid' : '' }}" name="name" value="{{ old('name') }}" required autofocus>

        @if ($errors->has('name'))
            <span class="invalid-feedback" role="alert">
                <strong>{{ $errors->first('name') }}</strong>
            </span>
        @endif
    </div>
</div>

<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{{ $errors->has('email') ? ' is-invalid' : '' }}" name="email" value="{{ old('email') }}" required>

        @if ($errors->has('email'))
            <span class="invalid-feedback" role="alert">
                <strong>{{ $errors->first('email') }}</strong>
            </span>
        @endif
    </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{{ $errors->has('password') ? ' is-invalid' : '' }}" name="password" required>

        @if ($errors->has('password'))
            <span class="invalid-feedback" role="alert">
                <strong>{{ $errors->first('password') }}</strong>
            </span>
        @endif
    </div>
</div>

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

    <div class="col-md-6">
        <input id="password-confirm" type="password" class="form-control" name="password_confirmation" required>
    </div>
</div>

<div class="form-group row mb-0">
    <div class="col-md-6 offset-md-4">
        <button type="submit" class="btn btn-primary">
            {{ __('Register') }}
        </button>
    </div>
</div>
Salin selepas log masuk

注意,我们使用了 Blade 模板引擎的 @csrf 和 @if 语句来生成必要的 CSRF 令牌并显示验证错误消息。

结论
通过 Laravel 可以快速、方便、安全地实现 Web 应用程序的登录和注册身份验证功能,从而保护您的应用程序免受未授权的访问。在本文中,我们介绍了 Laravel 的身份验证系统并实现了注册和登录。现在,您可以使用这些基础知识构建更完整的用户身份验证系统,或将其集成到您的现有应用程序中。

Atas ialah kandungan terperinci laravel melaksanakan pendaftaran log masuk. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Mana yang lebih baik, Django atau Laravel? Mana yang lebih baik, Django atau Laravel? Mar 28, 2025 am 10:41 AM

Kedua-dua Django dan Laravel adalah kerangka kerja penuh. Django sesuai untuk pemaju python dan logik perniagaan yang kompleks, manakala Laravel sesuai untuk pemaju PHP dan sintaks elegan. 1.Django didasarkan pada python dan mengikuti falsafah "lengkap bateri", sesuai untuk perkembangan pesat dan kesesuaian yang tinggi. 2. Laravel didasarkan pada PHP, menekankan pengalaman pemaju, dan sesuai untuk projek kecil dan sederhana.

Laravel dan backend: Powering Web Application Logic Laravel dan backend: Powering Web Application Logic Apr 11, 2025 am 11:29 AM

Bagaimanakah Laravel memainkan peranan dalam logik backend? Ia memudahkan dan meningkatkan pembangunan backend melalui sistem penghalaan, eloquentorm, pengesahan dan kebenaran, acara dan pendengar, dan pengoptimuman prestasi. 1. Sistem penghalaan membolehkan definisi struktur URL dan logik pemprosesan permintaan. 2.eloquentorm memudahkan interaksi pangkalan data. 3. Sistem pengesahan dan kebenaran adalah mudah untuk pengurusan pengguna. 4. Acara dan pendengar melaksanakan struktur kod yang ditambah dengan longgar. 5. Pengoptimuman prestasi meningkatkan kecekapan aplikasi melalui caching dan beratur.

PHP atau Laravel mana yang lebih baik? PHP atau Laravel mana yang lebih baik? Mar 27, 2025 pm 05:31 PM

PHP dan Laravel tidak dapat dibandingkan secara langsung, kerana Laravel adalah rangka kerja berasaskan PHP. 1.Php sesuai untuk projek kecil atau prototaip cepat kerana ia mudah dan langsung. 2. Laravel sesuai untuk projek besar atau pembangunan yang cekap kerana ia menyediakan fungsi dan alat yang kaya, tetapi mempunyai lengkung pembelajaran yang curam dan mungkin tidak sebaik php tulen.

Adakah Laravel adalah frontend atau backend? Adakah Laravel adalah frontend atau backend? Mar 27, 2025 pm 05:31 PM

LaravelisabackendFramWorkBuiltonPHP, Direka ForweBapplicationDevelopment.itfocusesonServer-Sidelogic, DatabaseManagement, andApplications Structure, andCanbeIntegratedWithFrontendTechnologiesLikeVue.jsorreactorfull-stackdevelopment.

Fleksibiliti Laravel: Dari laman web mudah ke sistem yang kompleks Fleksibiliti Laravel: Dari laman web mudah ke sistem yang kompleks Apr 13, 2025 am 12:13 AM

Projek Pembangunan Laravel telah dipilih kerana fleksibiliti dan kuasa untuk memenuhi keperluan saiz dan kerumitan yang berbeza. Laravel menyediakan sistem penghalaan, eloquentorm, baris perintah artisan dan fungsi lain, menyokong pembangunan dari blog mudah ke sistem peringkat perusahaan yang kompleks.

Contoh Pengenalan Laravel Contoh Pengenalan Laravel Apr 18, 2025 pm 12:45 PM

Laravel adalah rangka kerja PHP untuk membina aplikasi web yang mudah. Ia menyediakan pelbagai ciri yang kuat termasuk: Pemasangan: Pasang Laravel CLI secara global dengan komposer dan buat aplikasi dalam direktori projek. Routing: Tentukan hubungan antara URL dan pengendali dalam laluan/web.php. Lihat: Buat pandangan dalam sumber/pandangan untuk menjadikan antara muka aplikasi. Integrasi Pangkalan Data: Menyediakan integrasi keluar-of-the-box dengan pangkalan data seperti MySQL dan menggunakan penghijrahan untuk membuat dan mengubah suai jadual. Model dan Pengawal: Model mewakili entiti pangkalan data dan proses pengawal permintaan HTTP.

Mengapa Laravel begitu popular? Mengapa Laravel begitu popular? Apr 02, 2025 pm 02:16 PM

Populariti Laravel termasuk proses pembangunan mudahnya, menyediakan persekitaran pembangunan yang menyenangkan, dan ciri -ciri yang kaya. 1) Ia menyerap falsafah reka bentuk Rubyonrails, menggabungkan fleksibiliti PHP. 2) Menyediakan alat seperti eloquentorm, enjin templat bilah, dan lain -lain untuk meningkatkan kecekapan pembangunan. 3) Mekanisme suntikan seni bina dan ketergantungan MVC menjadikan kod lebih modular dan boleh diuji. 4) Menyediakan alat debugging yang kuat dan kaedah pengoptimuman prestasi seperti sistem caching dan amalan terbaik.

Fungsi Utama Laravel: Pembangunan Backend Fungsi Utama Laravel: Pembangunan Backend Apr 15, 2025 am 12:14 AM

Fungsi teras Laravel dalam pembangunan back-end termasuk sistem penghalaan, eloquentorm, fungsi penghijrahan, sistem cache dan sistem giliran. 1. Sistem penghalaan memudahkan pemetaan URL dan meningkatkan organisasi dan penyelenggaraan kod. 2.eloquentorm menyediakan operasi data berorientasikan objek untuk meningkatkan kecekapan pembangunan. 3. Fungsi penghijrahan menguruskan struktur pangkalan data melalui kawalan versi untuk memastikan konsistensi. 4. Sistem cache mengurangkan pertanyaan pangkalan data dan meningkatkan kelajuan tindak balas. 5. Sistem giliran berkesan memproses data berskala besar, elakkan menghalang permintaan pengguna, dan meningkatkan prestasi keseluruhan.

See all articles