Rumah > rangka kerja php > Laravel > laravel melaksanakan pendaftaran dan log masuk

laravel melaksanakan pendaftaran dan log masuk

WBOY
Lepaskan: 2023-05-21 09:31:07
asal
1138 orang telah melayarinya

Laravel ialah rangka kerja PHP yang biasa digunakan dengan sintaks yang elegan, fungsi yang berkuasa dan dokumentasi yang kaya Ia telah menjadi rangka kerja pilihan untuk banyak pembangun PHP. Artikel ini akan memperkenalkan cara menggunakan rangka kerja Laravel untuk melaksanakan fungsi pendaftaran dan log masuk.

1. Cipta aplikasi Laravel
Sebelum mula melaksanakan fungsi pendaftaran dan log masuk, anda perlu mencipta aplikasi Laravel terlebih dahulu. Anda boleh menggunakan arahan Komposer yang disediakan secara rasmi oleh Laravel untuk mencipta aplikasi baharu, seperti yang ditunjukkan di bawah:

composer create-project --prefer-dist laravel/laravel your-project-name
Salin selepas log masuk

di mana, your-project-name ialah nama aplikasi yang ingin anda cipta.

Selepas penciptaan, masukkan direktori aplikasi dan mulakan pelayan setempat:

cd your-project-name
php artisan serve
Salin selepas log masuk

Masukkan http://localhost:8000 dalam penyemak imbas untuk mengakses halaman alu-aluan aplikasi.

2. Cipta sistem pengesahan
Sebelum melaksanakan fungsi pendaftaran dan log masuk, anda perlu mencipta sistem pengesahan asas. Laravel menyediakan make:auth perintah Artisan untuk menjana pandangan dan pengawal berkaitan pengesahan dengan cepat.

php artisan make:auth
Salin selepas log masuk

Selepas melaksanakan arahan di atas, Laravel secara automatik akan mencipta paparan dan pengawal berkaitan seperti register, login dan logout dan menambahkannya pada aplikasi. Selain itu, Laravel akan mencipta jadual tetapan semula pengguna dan kata laluan yang berkaitan dalam pangkalan data.

3. Cipta jadual pangkalan data
Secara lalai, Laravel menggunakan pangkalan data MySQL. Dalam contoh ini, jadual data bernama users perlu dibuat untuk menyimpan data pengguna. Jadual boleh dibuat menggunakan perintah Artisan berikut:

php artisan make:migration create_users_table --create=users
Salin selepas log masuk

Selepas melaksanakan arahan di atas, Laravel akan mencipta fail migrasi bernama database/migrations dalam direktori create_users_table aplikasi. Buka fail dan ubah suai kaedah up seperti berikut:

public function up()
{
    Schema::create('users', function (Blueprint $table) {
        $table->bigIncrements('id');
        $table->string('name');
        $table->string('email')->unique();
        $table->timestamp('email_verified_at')->nullable();
        $table->string('password');
        $table->rememberToken();
        $table->timestamps();
    });
}
Salin selepas log masuk

Fail migrasi di atas mentakrifkan medan users jadual data, termasuk name (nama pengguna), email (alamat e-mel ), password (kata laluan), dsb.

Selepas mengubah suai fail migrasi, anda perlu melaksanakan perintah Artisan berikut untuk benar-benar mencipta usersjadual data:

php artisan migrate
Salin selepas log masuk

4 Buat halaman pendaftaran
Seterusnya, anda perlukan untuk membuat halaman pendaftaran yang membolehkan pengguna memasukkan nama pengguna, alamat e-mel dan kata laluan mereka. Buka fail resources/views/auth/register.blade.php dan anda boleh melihat bahawa Laravel telah mencipta borang pendaftaran asas untuk kami.

Pada ketika ini, kami perlu memadamkan beberapa medan dan menambah medan name yang diperlukan dan medan password_confirmation pengesahan kata laluan. Kod yang diubah suai adalah seperti berikut:

<form method="POST" action="{{ route('register') }}">
    @csrf

    <div>
        <label for="name">{{ __('Name') }}</label>

        <div>
            <input id="name" type="text" name="name" value="{{ old('name') }}" required autofocus>
        </div>
    </div>

    <div>
        <label for="email">{{ __('E-Mail Address') }}</label>

        <div>
            <input id="email" type="email" name="email" value="{{ old('email') }}" required>
        </div>
    </div>

    <div>
        <label for="password">{{ __('Password') }}</label>

        <div>
            <input id="password" type="password" name="password" required>
        </div>
    </div>

    <div>
        <label for="password-confirm">{{ __('Confirm Password') }}</label>

        <div>
            <input id="password-confirm" type="password" name="password_confirmation" required>
        </div>
    </div>

    <div>
        <button type="submit">
            {{ __('Register') }}
        </button>
    </div>
</form>
Salin selepas log masuk

5. Proses permintaan pendaftaran
Sekarang, borang pendaftaran telah dibuat, tetapi ia tidak akan berkuat kuasa apabila pengguna menyerahkan borang. Jadi kita perlu mengubah suai fail app/Http/Controllers/Auth/RegisterController.php untuk mengendalikan permintaan pendaftaran.

public function store(Request $request)
{
    $this->validate($request, [
        'name' => 'required|string|max:255',
        'email' => 'required|string|email|unique:users|max:255',
        'password' => 'required|string|min:8|confirmed',
    ]);

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

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

Kod di atas mentakrifkan kaedah bernama store(), yang digunakan untuk mengendalikan permintaan pendaftaran. Pertama, kaedah validate() mengesahkan data yang diminta. Jika pengesahan lulus, gunakan model User untuk mencipta pengguna baharu dan menyulitkan kata laluan. Akhir sekali, ubah hala ke halaman papan pemuka aplikasi.

6. Cipta halaman log masuk
Seterusnya, anda perlu mencipta halaman log masuk di mana pengguna boleh memasukkan alamat e-mel dan kata laluan mereka. Buka fail resources/views/auth/login.blade.php dan anda dapat melihat bahawa Laravel telah mencipta borang log masuk asas untuk kami.

7. Memproses permintaan log masuk
Borang pendaftaran telah dibuat, tetapi ia tidak akan berkuat kuasa apabila pengguna menyerahkan borang. Jadi kita perlu mengubah suai fail app/Http/Controllers/Auth/LoginController.php untuk mengendalikan permintaan log masuk.

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

    if (Auth::attempt($credentials)) {
        $request->session()->regenerate();

        return redirect()->intended('dashboard');
    }

    return back()->withErrors([
        'email' => 'The provided credentials do not match our records.',
    ]);
}
Salin selepas log masuk

Kod di atas mentakrifkan kaedah bernama store(), yang digunakan untuk mengendalikan permintaan log masuk. Pertama, kaedah attempt() cuba untuk mengesahkan menggunakan bukti kelayakan yang disediakan oleh pengguna. Jika pengesahan berjaya, sesi baharu dijana dan pengguna dialihkan ke halaman papan pemuka aplikasi. Jika ini gagal, pengguna dialihkan semula ke halaman log masuk asal menggunakan kaedah back() dengan mesej ralat.

8. Sediakan perisian tengah pengesahan
Setelah fungsi pendaftaran dan log masuk telah dilaksanakan, laluan tertentu aplikasi perlu dilindungi supaya hanya pengguna yang disahkan boleh mengaksesnya. Dalam Laravel, anda boleh menggunakan perisian tengah untuk mencapai ini. Laravel menyediakan perisian tengah yang dipanggil auth yang mengesahkan sama ada pengguna log masuk ke aplikasi.

Laravel secara lalai menggunakan perisian tengah auth pada mana-mana laluan menggunakan nama laluan auth. Satu atau lebih perisian tengah boleh ditentukan menggunakan kod berikut:

Route::get('/dashboard', function () {
    // 仅允许已登录用户访问
})->middleware(['auth']);
Salin selepas log masuk

Kini hanya pengguna yang disahkan boleh mengakses laluan /dashboard.

Ringkasan
Artikel ini memperkenalkan cara menggunakan rangka kerja Laravel untuk melaksanakan fungsi pendaftaran dan log masuk. Dengan bantuan rangka kerja Laravel, anda boleh membina aplikasi web yang selamat dan boleh dipercayai dengan cepat dan mudah serta mempromosikan proses pembangunan aplikasi web. Sama ada anda seorang pemula atau pembangun berpengalaman, anda boleh cuba menggunakan rangka kerja Laravel untuk membina aplikasi web anda sendiri.

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

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan