Rumah  >  Artikel  >  rangka kerja php  >  Cara menggunakan Laravel untuk melaksanakan fungsi kod pengesahan

Cara menggunakan Laravel untuk melaksanakan fungsi kod pengesahan

WBOY
WBOYasal
2023-11-04 10:42:50450semak imbas

Cara menggunakan Laravel untuk melaksanakan fungsi kod pengesahan

Laravel ialah rangka kerja web PHP popular yang menyediakan banyak kemudahan untuk pembangunan aplikasi web. Salah satu fungsi yang sangat penting ialah fungsi kod pengesahan. CAPTCHA ialah mekanisme untuk mengesahkan tindakan manusia, dan ia boleh digunakan dalam banyak senario aplikasi web. Dalam artikel ini, kami akan menggunakan Laravel sebagai contoh untuk memperkenalkan cara melaksanakan fungsi kod pengesahan dan menyediakan contoh kod khusus.

  1. Jana imej kod pengesahan

Dalam Laravel, cara untuk menjana imej kod pengesahan biasanya menggunakan perpustakaan GD PHP. Pustaka GD ialah perpustakaan pemprosesan imej PHP yang sangat popular yang menyediakan banyak fungsi mudah untuk menjana pelbagai jenis imej dengan mudah. Dalam Laravel, kita boleh menggunakan fungsi perpustakaan GD untuk menjana imej kod pengesahan. Berikut ialah contoh kod:

use IlluminateSupportFacadesResponse;

function generateCaptcha() {
    $captchaChars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $captchaLength = 6;
    $captchaCode = '';
    for ($i = 0; $i < $captchaLength; $i++) {
        $captchaCode .= $captchaChars[rand(0, strlen($captchaChars) - 1)];
    }

    $captchaImage = imagecreatetruecolor(120, 50);
    $bgColor = imagecolorallocate($captchaImage, 255, 255, 255);
    imagefilledrectangle($captchaImage, 0, 0, 120, 50, $bgColor);
    $textColor = imagecolorallocate($captchaImage, 0, 0, 0);
    imagestring($captchaImage, 5, 40, 15, $captchaCode, $textColor);

    ob_start();
    imagepng($captchaImage);
    $captchaImageContent = ob_get_contents();
    ob_end_clean();

    return Response::make($captchaImageContent)->header('Content-Type', 'image/png');
}

Kod di atas menjana aksara rawak 6 digit sebagai kod pengesahan dan menggunakan pustaka GD untuk mencipta imej PNG 120x50. Akhirnya, imej dikembalikan kepada pelanggan sebagai tindak balas.

  1. Simpan kod pengesahan dalam Sesi

Dalam langkah sebelumnya, kami telah berjaya menghasilkan imej kod pengesahan. Seterusnya, kita perlu menyimpan kod pengesahan dalam Sesi untuk pengesahan seterusnya. Dalam Laravel, Sesi ialah mekanisme yang sangat biasa yang memudahkan untuk menyimpan dan membaca data sesi web. Berikut ialah contoh kod yang menyimpan kod pengesahan dalam Sesi:

function saveCaptchaCode($captchaCode) {
    session(['captcha' => $captchaCode]);
}

Kod di atas menggunakan fungsi sesi Laravel untuk menyimpan kod pengesahan dalam Sesi. Dengan cara ini, kami boleh menggunakan Sesi dalam kod berikutnya untuk mengesahkan kod pengesahan yang dimasukkan oleh pengguna.

  1. Sahkan kod pengesahan yang dimasukkan pengguna

Kod pengesahan yang dimasukkan pengguna biasanya diserahkan melalui borang web. Dalam Laravel, kita boleh menggunakan objek Permintaan untuk mendapatkan data yang diserahkan oleh borang, termasuk kod pengesahan. Selepas mendapatkan kod pengesahan, kami boleh menggunakan kod pengesahan yang disimpan dalam Sesi untuk membuat penghakiman. Berikut ialah contoh kod:

function verifyCaptchaCode(Request $request) {
    $inputCaptchaCode = $request->input('captcha');
    $sessionCaptchaCode = session('captcha');
    if ($inputCaptchaCode != $sessionCaptchaCode) {
        return false;
    }
    return true;
}

Kod di atas menggunakan objek Permintaan Laravel untuk mendapatkan kod pengesahan yang diserahkan oleh borang dan mencari kod pengesahan yang dijana dalam Sesi. Jika kedua-duanya tidak sepadan, kembalikan palsu, sebaliknya kembalikan benar.

  1. Paparkan kod pengesahan dalam borang web

Untuk memaparkan kod pengesahan dalam borang web, kami perlu menambah panggilan ke fungsi penjanaan imej kod pengesahan dalam HTML dan menetapkan elemen borang yang berkaitan. Berikut ialah contoh kod:

<form action="login" method="post">
    <label>用户名</label><input type="text" name="username"><br>
    <label>密码</label><input type="password" name="password"><br>
    <label>验证码</label><input type="text" name="captcha"><br>
    <img  src="{{ url('captcha') }}" onclick="this.src='{{ url('captcha') }}?r='+Math.random()" / alt="Cara menggunakan Laravel untuk melaksanakan fungsi kod pengesahan" >
</form>

Kod di atas mengandungi teg img yang mengandungi panggilan ke fungsi penjanaan imej kod pengesahan, dan juga memaparkan kotak input teks untuk memasukkan kod pengesahan.

Ringkasnya, kami memahami cara melaksanakan fungsi kod pengesahan dalam Laravel. Kami menulis beberapa kod untuk menjana imej captcha, menyimpannya dalam Sesi dan menggunakan elemen borang untuk mengesahkan input pengguna. Ini hanyalah satu kemungkinan, bukan satu-satunya cara untuk melaksanakan fungsi kod pengesahan dalam Laravel. Tetapi kami percaya bahawa kod sampel di atas boleh membantu anda melaksanakan fungsi kod pengesahan dengan cepat.

Atas ialah kandungan terperinci Cara menggunakan Laravel untuk melaksanakan fungsi kod pengesahan. 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