Rumah >pembangunan bahagian belakang >tutorial php >Bermula dengan PHP: Token JWT

Bermula dengan PHP: Token JWT

PHPz
PHPzasal
2023-05-21 08:07:351436semak imbas

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.

  1. Gambaran Keseluruhan Token JWT

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.

  1. Proses pelaksanaan PHP

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.

  1. Kesimpulan

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!

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