Rumah pembangunan bahagian belakang tutorial php Laravel5.2使用Captcha生成验证码实现登录方法

Laravel5.2使用Captcha生成验证码实现登录方法

Jan 05, 2018 am 10:14 AM
captcha mengesahkan

最近有朋友要我帮忙弄一下laravel的验证码登陆,所以稍稍研究了一下。本文主要介绍了Laravel5.2使用Captcha生成验证码(session巨坑),需要的朋友可以参考下,希望能帮助到大家。

首先,安装laravel就不用在下赘述了吧,我的版本是5.2.45(注:laravel5.2.6以上的版本中间件可以自动加载),这还是挺重要的。

安装完成之后,你需要使用composer来加载你的Captcha,具体方法就是在你的composer.json中的require数组中加上"gregwar/captcha":"1.*"这行代码。然后嘞,就在你的项目根目录下使用cmd来运行composer update这行代码。这样一来的话,就算是安装上这个库或者是中间件了。之后就可以放肆的写你的代码了。

php:(具体的路由啥的在下就不做太多的赘述了,只写关键代码)

public function captcha($tmp)
{  //生成验证码图片的Builder对象,配置相应属性
  $builder = new CaptchaBuilder;
  //可以设置图片宽高及字体
  $builder->build($width = 100, $height = 40, $font = null);
  //获取验证码的内容
  $phrase = $builder->getPhrase();
  //把内容存入session
  Session::flash('milkcaptcha', $phrase);
  //生成图片
  header("Cache-Control: no-cache, must-revalidate");
  header('Content-Type: image/jpeg');
  $builder->output();
}
Salin selepas log masuk

blade模板的调用:

<img src="{{url(&#39;/captcha/1&#39;)}}" alt="" onclick="this.src=&#39;{{url(&#39;/captcha&#39;)}}/&#39;+Math.random()" width="100" height="40" border="0">
Salin selepas log masuk

  如果你以为这样就完事了的话,那你真的是too yang too simple了。在你验证的时候你会发现怎么样都是错误。

是不是很酸爽。因为在laravel5.2中,所有的session都是不能跨控制器、方法的,如果跨的话,session会重新生成,默认session的传递需要经过中间件。不要急,接下来的方法就是解决之道。目前本人所知有两种解决方案,其一就是自己建一个中间件,然后把所有的session都存储在其中,但是有点小麻烦,接下来本人介绍一种简单的方法,在你的laravel\app\Http\Kernel.php 文件里的$middleware里加上以下代码:

\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
\Illuminate\Cookie\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
Salin selepas log masuk

之后就可以放心的使用session了。这是在下的验证验证码的方式,

public function login_data()
{
  $userInput = \Request::get('captcha');
  if (Session::get('milkcaptcha') == $userInput) {
    //用户输入验证码正确,验证你自己密码用户名
    echo 1;
  } else {
    //用户输入验证码错误
    echo 2;
  }
}
Salin selepas log masuk

最后不得不吐槽一下laravel的官方文档,像这种坑都不提前说明,估计是担心开发者开发的太顺心了吧。

相关推荐:

通过使用node.js+captchapng+jsonwebtoken完成登录验证

关于Captcha示例的10篇文章推荐

分享Nodejs中用captchapng生成图片验证码的实例

Atas ialah kandungan terperinci Laravel5.2使用Captcha生成验证码实现登录方法. 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

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

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)

Bagaimana untuk mengesahkan tandatangan dalam PDF Bagaimana untuk mengesahkan tandatangan dalam PDF Feb 18, 2024 pm 05:33 PM

Kami biasanya menerima fail PDF daripada kerajaan atau agensi lain, sesetengahnya dengan tandatangan digital. Selepas mengesahkan tandatangan, kami melihat mesej SignatureValid dan tanda semak hijau. Sekiranya tandatangan tidak disahkan, kesahihannya tidak diketahui. Mengesahkan tandatangan adalah penting, mari lihat cara melakukannya dalam PDF. Cara Mengesahkan Tandatangan dalam PDF Mengesahkan tandatangan dalam format PDF menjadikannya lebih boleh dipercayai dan dokumen lebih cenderung untuk diterima. Anda boleh mengesahkan tandatangan dalam dokumen PDF dengan cara berikut. Buka PDF dalam Adobe Reader Klik kanan tandatangan dan pilih Show Signature Properties Klik butang Tunjukkan Sijil Penandatangan Tambah tandatangan pada senarai Sijil Dipercayai daripada tab Amanah Klik Sahkan Tandatangan untuk melengkapkan pengesahan Biarkan

Kaedah terperinci untuk menyahsekat menggunakan pengesahan bantuan rakan WeChat Kaedah terperinci untuk menyahsekat menggunakan pengesahan bantuan rakan WeChat Mar 25, 2024 pm 01:26 PM

1. Selepas membuka WeChat, klik ikon carian, masukkan pasukan WeChat, dan klik perkhidmatan di bawah untuk masuk. 2. Selepas memasukkan, klik pilihan alat layan diri di sudut kiri bawah. 3. Selepas mengklik, dalam pilihan di atas, klik pilihan untuk menyahsekat/merayu untuk pengesahan tambahan.

Bagaimana untuk mengesahkan kod IFSC menggunakan ungkapan biasa? Bagaimana untuk mengesahkan kod IFSC menggunakan ungkapan biasa? Aug 26, 2023 pm 10:17 PM

Kod Sistem Kewangan India ialah singkatan. Cawangan bank India yang mengambil bahagian dalam sistem pemindahan dana elektronik dikenal pasti melalui kod khas 11 aksara. Reserve Bank of India menggunakan kod ini dalam transaksi internet untuk memindahkan dana antara bank. Kod IFSC terbahagi kepada dua bahagian. Bank dikenal pasti dengan empat aksara pertama, manakala cawangan dikenal pasti oleh enam aksara terakhir. NEFT (Pemindahan Dana Elektronik Nasional), RTGS (Penyelesaian Kasar Masa Nyata) dan IMPS (Perkhidmatan Pembayaran Segera) ialah beberapa transaksi elektronik yang memerlukan kod IFSC. Kaedah Beberapa cara biasa untuk mengesahkan kod IFSC menggunakan ungkapan biasa ialah: Semak sama ada panjangnya betul. Semak empat aksara pertama. Semak aksara kelima.Che

Ciri baharu dalam PHP 8: Ditambah pengesahan dan tandatangan Ciri baharu dalam PHP 8: Ditambah pengesahan dan tandatangan Mar 27, 2024 am 08:21 AM

PHP8 ialah versi PHP terkini, membawa lebih banyak kemudahan dan fungsi kepada pengaturcara. Versi ini mempunyai tumpuan khusus pada keselamatan dan prestasi, dan salah satu ciri baharu yang perlu diberi perhatian ialah penambahan keupayaan pengesahan dan tandatangan. Dalam artikel ini, kita akan melihat dengan lebih dekat ciri baharu ini dan kegunaannya. Pengesahan dan tandatangan adalah konsep keselamatan yang sangat penting dalam sains komputer. Ia sering digunakan untuk memastikan bahawa data yang dihantar adalah lengkap dan sahih. Pengesahan dan tandatangan menjadi lebih penting apabila berurusan dengan transaksi dalam talian dan maklumat sensitif kerana jika seseorang dapat mengganggu data, ia berpotensi

Bagaimana untuk mengesahkan sama ada input adalah huruf besar dalam golang Bagaimana untuk mengesahkan sama ada input adalah huruf besar dalam golang Jun 24, 2023 am 09:06 AM

Golang ialah bahasa pengaturcaraan moden berprestasi tinggi yang sering melibatkan pemprosesan rentetan dalam pembangunan harian. Antaranya, mengesahkan sama ada input dalam huruf besar adalah keperluan biasa. Artikel ini akan memperkenalkan cara untuk mengesahkan sama ada input adalah huruf besar dalam Golang. Kaedah 1: Gunakan pakej unicode Pakej unicode dalam Golang menyediakan satu siri fungsi untuk menentukan jenis pengekodan aksara. Untuk huruf besar, julat pengekodan yang sepadan ialah 65-90 (perpuluhan), jadi kita boleh menggunakan unicod

Bagaimana untuk mengesahkan sama ada input adalah aksara lebar penuh dalam golang Bagaimana untuk mengesahkan sama ada input adalah aksara lebar penuh dalam golang Jun 25, 2023 pm 02:03 PM

Dalam golang, pengekodan Unicode dan jenis rune diperlukan untuk mengesahkan sama ada input ialah aksara lebar penuh. Pengekodan Unikod ialah standard pengekodan aksara yang memberikan titik kod angka yang unik kepada setiap aksara dalam set aksara, yang merangkumi aksara lebar penuh dan aksara separuh lebar. Jenis rune ialah jenis yang digunakan untuk mewakili aksara Unicode dalam golang. Langkah pertama ialah menukar input menjadi kepingan jenis rune. Ini boleh ditukar dengan menggunakan jenis []rune golang, mis.

Bagaimana untuk memintas pengesahan mesin manusia dengan mudah Captcha Bagaimana untuk memintas pengesahan mesin manusia dengan mudah Captcha May 11, 2023 pm 05:55 PM

Writeup yang dikongsi hari ini ialah kaedah pintasan mesin manusia (Captcha) mudah yang ditemui oleh pengarang semasa ujian kerentanan tapak web sasaran Captcha telah dicapai dengan menggunakan alat pembangun Chrome untuk mengedit elemen pada halaman log masuk tapak web sasaran. lulus. Pengesahan komputer manusia (Captcha) biasanya muncul pada halaman pendaftaran, log masuk dan tetapan semula kata laluan laman web Berikut adalah mekanisme Captcha yang diatur oleh tapak web sasaran dalam halaman log masuk. Seperti yang anda lihat daripada gambar di atas, hanya selepas pengguna menyemak "I'mnotarobot" mekanisme pengesahan Captcha, butang log masuk (Log Masuk) akan didayakan dan dipaparkan untuk diklik oleh pengguna. Jadi berdasarkan ini, saya klik kanan pada Si

Bagaimana untuk mengesahkan sama ada input adalah semua aksara Cina dalam golang Bagaimana untuk mengesahkan sama ada input adalah semua aksara Cina dalam golang Jun 24, 2023 am 09:16 AM

Dengan perkembangan zaman, kami memberi lebih banyak perhatian kepada pengesahan data, terutamanya pengesahan input pengguna. Untuk pengesahan bahasa, cara menentukan dengan tepat sama ada input adalah semua aksara Cina telah menjadi isu penting. Dalam golang, kita boleh menggunakan pakej unicode dan pakej regexp untuk mencapai keperluan ini. 1. Pakej Unicode Pakej unicode menyediakan satu siri sokongan teras untuk unicode. Kita boleh menggunakan fungsi dalam pakej ini untuk menentukan dengan tepat sama ada sesuatu aksara ialah aksara Cina.

See all articles