Rumah > rangka kerja php > ThinkPHP > teks badan

Cara thinkphp melaksanakan kod pengesahan pemisahan bahagian hadapan dan belakang

PHPz
Lepaskan: 2023-05-31 20:18:53
ke hadapan
1404 orang telah melayarinya

1. Peranan kod pengesahan

Dalam era Internet, kami sering menggunakan kod pengesahan untuk meningkatkan keselamatan. Melaksanakan fungsi kod pengesahan boleh membantu kami:

  1. Mencegah serangan robot: Kod pengesahan boleh mengesan sama ada ia adalah operasi manusia untuk mengurangkan serangan oleh robot berniat jahat dan penggodam.

  2. Meningkatkan keselamatan: Kod pengesahan boleh mengukuhkan kawalan kebenaran, memastikan ketulenan identiti pengguna dan melindungi pelayan dan tapak web daripada serangan yang tidak perlu.

  3. Tingkatkan pengalaman pengguna: Kod pengesahan boleh menghalang pengguna daripada kehilangan minat dengan berkesan akibat aksara yang tidak boleh dibaca secara berterusan.

2. Pelaksanaan kod pengesahan bahagian hadapan

Dalam proses pelaksanaan kod pengesahan bahagian hadapan, kami memerlukan langkah utama berikut :

  1. Tentukan jenis kod pengesahan: Kod pengesahan biasanya dibahagikan kepada kod pengesahan aksara dan kod pengesahan grafik. Reka bentuk dengan mengambil kira pengalaman pengguna dan keselamatan.

  2. Jana kod pengesahan pada halaman hadapan: Gunakan Kanvas atau teknologi lain untuk menjana kod pengesahan pada halaman hujung hadapan. Anda boleh menggunakan elemen Kanvas HTML5 untuk menyesuaikan fon, saiz dan warna kod pengesahan.

  3. Secara amnya, kami perlu mengesahkan sama ada input pengguna sepadan dengan kod pengesahan yang dijana oleh pelayan. Melalui teknologi JavaScript dan Ajax, kami dapat memperoleh input pengguna dan menghantarnya ke bahagian pelayan.

  4. Kod pengesahan pengesahan: Sahkan input pengguna pada bahagian pelayan Jika antara muka API disediakan, antara muka akan mengembalikan maklumat pengesahan kejayaan atau kegagalan kepada pelanggan.

Dengan menggunakan teknologi ini, pengguna boleh mendapatkan kod pengesahan di kaunter hadapan untuk mengelakkan akses atau serangan berniat jahat automatik.

3. Pelaksanaan kod pengesahan back-end

Untuk melaksanakan kod pengesahan dalam thinkphp, kami biasanya memberi perhatian kepada aspek berikut:

  1. Buat pengawal kod pengesahan

Untuk mengawal penjanaan dan pengesahan kod pengesahan, anda boleh meletakkan pengawal kod pengesahan dalam direktori latar belakang. Dalam pengawal, kaedah berikut biasanya disertakan:

  • generateCode: Jana kod pengesahan dan simpan kod pengesahan dalam Sesi.

  • verifyCode: Sahkan sama ada kod pengesahan yang dimasukkan oleh pengguna adalah betul.

  • getCode: Mengembalikan kod pengesahan yang disimpan dalam Sesi.

  1. Jana kod pengesahan

Apabila menjana kod pengesahan, kami boleh menggunakan perpustakaan GD untuk menjana imej, dan kemudian lulus Cara untuk mengeluarkan imej dan menyimpan imej, hantar hasil kod pengesahan kepada pelanggan. Berikut ialah contoh kod:

public function generateCode($width=80,$height=22,$verifyName=''){
    //生成一个4位的随机字符串
    $code = '';
    $chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    for($i=0;$i<4;$i++){
        $code .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
    }
    //将验证码存储到session中
    if($verifyName){
        session($verifyName, $code);
    }else{
        session(&#39;verify_code&#39;, $code);
    }

    //生成验证码图像
    $img = imagecreate($width,$height);
    //背景色
    imagecolorallocate($img, 102,102,102);
    //字体颜色
    $color = imagecolorallocate($img, 255, 255, 255);
    //生成干扰线
    for($i=0;$i<5;$i++){
        imageline($img,mt_rand(0,$width/2),mt_rand(0,$height/2),mt_rand($width/2,$width),mt_rand($height/2,$height),$color);
    }
    //将验证码绘制到图像上
    imagefttext($img, 18, 0, 10, $height-5, $color, &#39;./arial.ttf&#39;, $code);
    //输出图像
    header(&#39;Pragma:no-cache&#39;);
    header(&#39;Cache-Control:no-cache&#39;);
    header("content-type:image/png");
    imagepng($img);
    imagedestroy($img);
}
Salin selepas log masuk
  1. Kod pengesahan pengesahan

Kami biasanya mendapat kod pengesahan yang dimasukkan oleh pengguna, dan kemudian mencari kod pengesahan yang sepadan dalam sesi Nilai kod pengesahan untuk disahkan. Apabila nilai kod pengesahan yang disimpan dalam sesi adalah sama dengan nilai yang dimasukkan oleh pengguna, pengesahan kod pengesahan berjaya.

// 验证码验证
if(empty($verify)) {
    $this->error(&#39;验证码不能为空!&#39;);
}
if($verify != session(&#39;verify_code&#39;)){
    $this->error("验证码错误!");
}
Salin selepas log masuk

4 Kelebihan pelaksanaan kod pengesahan pemisahan bahagian hadapan dan belakang

Pemisahan bahagian hadapan dan bahagian belakang membolehkan pembangun bahagian belakang memberi tumpuan. pada pemprosesan data dan perniagaan logik, dan Pembangun bahagian hadapan boleh menumpukan pada pembangunan pengalaman pengguna dan kaedah interaksi. Menggunakan pemisahan bahagian hadapan dan belakang, keselamatan tapak web dan aplikasi web boleh dipertingkatkan dan kod pengesahan boleh digunakan untuk menyekat akses dan serangan automatik berniat jahat secara berkesan.

Atas ialah kandungan terperinci Cara thinkphp melaksanakan kod pengesahan pemisahan bahagian hadapan dan belakang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!