Apabila aplikasi web moden terus berkembang, pengesahan dan keselamatan menjadi semakin penting. Salah satu kaedah yang popular ialah menggunakan token JWT (JSON Web Token) untuk pengesahan. Artikel ini akan memperkenalkan anda kepada asas dan teknik melaksanakan token JWT menggunakan PHP.
JWT ialah standard terbuka yang mentakrifkan cara untuk menghantar tuntutan dengan selamat dan cekap dengan menghantar objek JSON melalui rangkaian. JWT terdiri daripada tiga bahagian: pengepala, muatan dan tandatangan. Pengepala mengandungi jenis token dan algoritma cincang yang digunakan, muatan mengandungi maklumat pengesahan dan kebenaran, dan tandatangan ialah rentetan yang menggabungkan pengepala dan cincang muatan serta kunci.
JWT menyokong pengesahan tanpa kewarganegaraan, bahagian pelayan, mengelakkan keperluan untuk menggunakan sesi pelayan atau kuki. Dan ia mudah untuk dilanjutkan kerana ia adalah format JSON yang standard.
Bahasa PHP menyediakan banyak kelas untuk menjana dan mengesahkan teg JWT dengan mudah. Mencipta JWT dalam PHP memerlukan penggunaan perpustakaan, kami menggunakan perpustakaan php-jwt, yang tersedia secara percuma di GitHub.
Pasang pustaka php-jwt:
komposer memerlukan firebase/php-jwt
Membuat token JWT adalah mudah, berikut ialah contoh kod:
require_once('vendor/autoload.php'); use FirebaseJWTJWT; $key = "example_key"; $payload = array( "iss" => "http://example.org", "aud" => "http://example.com", "iat" => 1356999524, "nbf" => 1357000000 ); $jwt = JWT::encode($payload, $key); print_r($jwt);
In contoh ini , kami menggunakan kunci example_key
dan beberapa petunjuk, seperti pengeluar token iss
dan penerima yang boleh menggunakan token aud
. Kami juga mentakrifkan kitaran hayat JWT, iaitu, ia sepatutnya tersedia selepas masa pengeluaran token iat
dan sebelum titik masa semasa nbf
.
Keputusan akhir JWT ialah rentetan panjang dalam bentuk AAA.BBB.CCC. AAA ialah pengepala, BBB ialah muatan, dan CCC ialah tandatangan, yang dijana oleh kunci.
Mengesahkan token JWT memerlukan kunci yang sama, kod sampel adalah seperti berikut:
require_once('vendor/autoload.php'); use FirebaseJWTJWT; $key = "example_key"; $jwt = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOi8vZXhhbXBsZS5vcmciLCJhdWQiOiJodHRwOi8vZXhhbXBsZS5jb20iLCJpYXQiOjEzNTY5OTk1MjQsIm5iZiI6MTM1NzAwMDAwMCwiZXhwIjoxMzU3MDAwMDAwfQ.kn4N5lvvvdQhL7rEixJOaYWKQZ3GzrCc8REIzc2Kw8c"; $decoded = JWT::decode($jwt, $key, array('HS256')); print_r($decoded);
Jika token berjaya dinyahkodkan, kod anda akan mengeluarkan tatasusunan bersekutu yang sama seperti dalam muatan. Jika pengesahan gagal, pengecualian akan dilemparkan.
Artikel ini menerangkan cara melaksanakan token JWT menggunakan PHP. JWT ialah alat mudah dan berguna yang boleh menjadikan aplikasi anda lebih selamat dan mengelak daripada menggunakan mekanisme sesi tradisional. Kami berharap artikel ini membantu anda lebih memahami JWT dan cara menggunakannya dalam aplikasi PHP.
Atas ialah kandungan terperinci Bermula dengan PHP: Token JWT. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!