Rumah  >  Artikel  >  rangka kerja php  >  Kaedah pengesahan dalam laravel

Kaedah pengesahan dalam laravel

WBOY
WBOYasal
2023-05-20 22:16:361255semak imbas

Laravel ialah rangka kerja PHP yang popular dengan kemudahan penggunaan dan ciri yang berkuasa. Salah satu fungsi penting ialah pengesahan Laravel menyediakan pelbagai kaedah pengesahan untuk mengesahkan data yang dihantar oleh borang dengan mudah dan memastikan ketepatan dan keselamatan data aplikasi. Artikel ini akan memperkenalkan kaedah pengesahan yang biasa digunakan dalam Laravel.

  1. Pengesahan Borang

Pengesahan borang ialah kaedah pengesahan yang paling biasa digunakan dalam Laravel Ia digunakan untuk mengesahkan sama ada data yang diserahkan oleh borang mematuhi peraturan yang ditetapkan. Setiap peraturan pengesahan boleh menentukan mesej ralat untuk dikeluarkan apabila pengesahan gagal. Berikut ialah contoh pengesahan borang:

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

    // 数据通过验证,将数据存储到数据库中
}

Dalam contoh di atas, kaedah $request->validate([]) digunakan untuk mengesahkan data dalam permintaan. Kaedah ini menerima tatasusunan yang mengandungi peraturan pengesahan Nama kunci tatasusunan mewakili nama medan yang akan disahkan dan nilai kunci mewakili peraturan pengesahan untuk medan.

Setiap peraturan pengesahan dipisahkan oleh aksara paip |, yang mengandungi parameter pengesahan peraturan. Contohnya, required|string|max:255 menunjukkan bahawa medan diperlukan, daripada jenis rentetan dan mempunyai panjang maksimum 255 aksara. unique:users bermaksud untuk mengesahkan keunikan medan ini dalam jadual users.

Jika pengesahan gagal, mesej ralat akan dikembalikan secara automatik. Jika pengesahan berjaya, logik kod berikut akan terus dilaksanakan.

  1. Pengesahan JSON

Laravel juga menyediakan kaedah pengesahan data JSON. Pengesahan JSON biasanya digunakan dalam pembangunan antara muka API untuk mengesahkan sama ada data JSON yang dihantar ke pelayan mematuhi peraturan yang ditetapkan. Sama seperti pengesahan borang, pengesahan JSON juga boleh menentukan peraturan pengesahan dan mesej ralat.

Berikut ialah contoh pengesahan JSON:

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

    if ($validator->fails()) {
        return response()->json([
            'status' => 'error',
            'message' => $validator->errors(),
        ], 422);
    }

    // 数据通过验证,将数据存储到数据库中
}

Dalam contoh di atas, gunakan kaedah Validator::make() untuk mencipta tika pengesahan. Tidak seperti pengesahan borang, kaedah make() memerlukan lulus dua parameter: data yang akan disahkan dan peraturan pengesahan. Jika pengesahan gagal, respons JSON yang mengandungi maklumat ralat perlu dikembalikan. Jika pengesahan berjaya, logik kod berikut akan terus dilaksanakan.

  1. Peraturan pengesahan tersuai

Selain peraturan pengesahan terbina dalam Laravel, pembangun juga boleh menyesuaikan peraturan pengesahan. Peraturan tersuai boleh memenuhi keperluan pengesahan khas, seperti masa pengesahan, kekuatan kata laluan, dsb.

Berikut ialah contoh peraturan pengesahan tersuai:

Validator::extend('strong_password', function ($attribute, $value, $parameters, $validator) {
    return preg_match('/^(?=.*[a-zA-Z])(?=.*d)(?=.*(_|[^w])).+$/', $value);
});

$validator = Validator::make($request->all(), [
    'password' => 'required|string|min:8|strong_password',
]);

Dalam contoh di atas, peraturan pengesahan tersuai dibuat menggunakan kaedah Validator::extend() strong_password. Kaedah ini menerima dua parameter: nama peraturan dan fungsi penutupan, yang menerima empat parameter: nama medan pengesahan, nilai medan pengesahan, parameter pengesahan dan objek pengesah.

Selepas mentakrifkan peraturan tersuai, anda perlu menggunakan peraturan tersuai dalam tika pengesah. Seperti yang ditunjukkan dalam kod di atas, min:8|strong_password bermakna kata laluan mestilah sekurang-kurangnya 8 aksara dan mesti mengandungi sekurang-kurangnya satu huruf besar dan huruf kecil, satu nombor dan satu aksara khas (kecuali garis bawah _).

  1. Penyesuaian mesej ralat

Apabila membangunkan aplikasi, selalunya perlu untuk menyesuaikan mesej ralat pengesahan. Dalam Laravel, anda boleh menggunakan kaedah message() untuk menyesuaikan mesej ralat.

Berikut ialah contoh menyesuaikan mesej ralat pengesahan:

rreee

Dalam contoh di atas, gunakan kaedah message() untuk menyesuaikan mesej ralat. Kaedah ini menerima dua parameter: nama peraturan pengesahan dan mesej ralat tersuai.

Di atas adalah kaedah pengesahan yang biasa digunakan dalam Laravel. Semasa menulis aplikasi, penggunaan kaedah pengesahan yang betul boleh memastikan ketepatan dan keselamatan data dengan berkesan.

Atas ialah kandungan terperinci Kaedah pengesahan dalam laravel. 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