Rumah > Artikel > pembangunan bahagian belakang > Cara menggunakan Token Web JSON untuk pengesahan API dalam PHP
JSON Web Token (JWT) ialah kaedah selamat untuk memindahkan maklumat dalam aplikasi web Ia adalah standard terbuka (RFC 7519) yang mentakrifkan cara yang padat, serba lengkap dan selamat untuk berkomunikasi antara semua pihak dengan selamat bentuk objek JSON. Penggunaan JWT amat penting apabila menggunakan API untuk pengesahan. Dalam PHP, kita boleh melaksanakan pengesahan JWT melalui beberapa langkah mudah.
Pertama, kita perlu memasang perpustakaan JWT melalui Komposer. Tambahkan kod berikut dalam fail composer.json:
{ "require": { "firebase/php-jwt": "3.0.*" } }
Sebagai alternatif, pasang dalam terminal menggunakan arahan berikut:
composer require firebase/php-jwt
Sedang Berlangsung Sebelum pengesahan API, kita perlu mencipta JWT. Dalam PHP, kita boleh mencipta JWT dengan kod berikut:
use FirebaseJWTJWT; $key = "example_key"; $payload = array( "iss" => "http://example.org", "aud" => "http://example.com", "iat" => 1356999524, "nbf" => 1357000000 ); $jwt = JWT::encode($payload, $key);
Dalam contoh ini, kita mencipta kunci bernama $key dan menggunakan tatasusunan $payload sebagai muatan JWT. Muatan mengandungi beberapa maklumat asas seperti "iss" (pengeluar), "aud" (penerima), "iat" (masa pengeluaran) dan "nbf" (masa sah), yang akan digunakan dalam pengesahan API .
Proses mengesahkan JWT adalah kebalikan daripada proses menciptanya. Kita perlu menggunakan kunci rahsia dan JWT asal untuk menyahkod JWT dan mengesahkan maklumat yang terkandung di dalamnya. Dalam PHP, kami boleh menggunakan kod berikut untuk mengesahkan JWT:
use FirebaseJWTJWT; $key = "example_key"; $jwt = $_POST["jwt"]; try { $decoded = JWT::decode($jwt, $key, array('HS256')); return $decoded; } catch (Exception $e) { return false; }
Di sini, kami menggunakan $_POST["jwt"] untuk menyerahkan JWT mentah ke pelayan. Kami kemudiannya lulus peraturan kunci dan penyulitan sebagai parameter kepada kaedah JWT::decode(). Jika pengesahan berjaya, kaedah ini akan mengembalikan data muatan JWT.
Dalam PHP, kami boleh menghantar JWT kepada pelanggan dan membenarkan pelanggan menghantar JWT dalam setiap permintaan sebagai Bukti Kesahan pengesahan. Dalam contoh berikut, kami menyimpan JWT dalam $_SESSION dan menghantarnya semula kepada pelanggan:
use FirebaseJWTJWT; $key = "example_key"; $payload = array( "iss" => "http://example.org", "aud" => "http://example.com", "iat" => 1356999524, "nbf" => 1357000000 ); $jwt = JWT::encode($payload, $key); $_SESSION["jwt"] = $jwt; header('Content-Type: application/json'); echo json_encode(array("jwt" => $jwt));
Di sini, kami menyimpan JWT menggunakan $_SESSION["jwt"] dan menghantarnya sebagai JSON Objek dihantar kembali kepada klien. Pelanggan boleh menyimpan JWT secara tempatan dan menghantarnya ke API untuk pengesahan.
Ringkasan
Proses menggunakan JWT untuk pengesahan API dalam PHP adalah sangat mudah, cuma ikut langkah di atas. Menggunakan JWT untuk pengesahan bukan sahaja meningkatkan keselamatan tetapi juga meningkatkan prestasi aplikasi anda kerana ia menghapuskan keperluan untuk pengesahan dengan setiap permintaan. Walau bagaimanapun, sila ambil perhatian bahawa jika kunci hilang atau dicuri oleh penggodam, ia boleh membawa kesan maut pada aplikasi, jadi pastikan untuk menyimpan kunci di tempat yang selamat.
Atas ialah kandungan terperinci Cara menggunakan Token Web JSON untuk pengesahan API dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!