Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Gunakan JWT (JSON Web Token) untuk melaksanakan pengesahan keselamatan PHP

Gunakan JWT (JSON Web Token) untuk melaksanakan pengesahan keselamatan PHP

WBOY
WBOYasal
2023-07-24 23:55:451187semak imbas

Gunakan JWT (JSON Web Token) untuk melaksanakan pengesahan keselamatan PHP

JWT (JSON Web Token) ialah standard terbuka untuk pengesahan dan kebenaran. Ia terdiri daripada tiga bahagian: pengepala, muatan dan tandatangan. Pengepala biasanya mengandungi algoritma dan jenis token, muatan mengandungi maklumat pengguna dan data lain yang berkaitan, dan tandatangan digunakan untuk mengesahkan integriti token.

Dalam PHP, terdapat perpustakaan yang boleh digunakan untuk melaksanakan penjanaan dan pengesahan JWT dengan mudah. Artikel ini akan memperkenalkan cara menggunakan perpustakaan Firebase JWT PHP untuk mencapai penjanaan dan pengesahan JWT Kod sampel adalah seperti berikut:

Langkah 1: Pasang pustaka Firebase JWT PHP
Pertama, anda perlu memasang pustaka Firebase JWT PHP melalui. Komposer. Buka terminal, tukar ke direktori projek, dan jalankan arahan berikut:

composer require firebase/php-jwt

Langkah 2: Jana JWT
Kod contoh berikut menunjukkan cara menjana JWT:

<?php

require_once 'vendor/autoload.php';

use FirebaseJWTJWT;

// 生成 JWT 密钥
$key = "密钥";

// 载荷,包含用户信息
$payload = array(
    "iss" => "example.org",
    "sub" => "user_id",
    "name" => "John Doe"
);

// 生成 JWT
$jwt = JWT::encode($payload, $key);
echo $jwt;
?>

Dalam kod di atas, anda perlu memperkenalkan Firebase terlebih dahulu Pustaka PHP JWT, dan kemudian tentukan kunci . Seterusnya, cipta tatasusunan bersekutu yang mengandungi maklumat pengguna sebagai muatan, yang boleh mengandungi sebarang maklumat pengguna yang diperlukan. Akhir sekali, gunakan kaedah JWT::encode() untuk menjana JWT dan mengeluarkannya ke konsol. JWT::encode() 方法生成 JWT,并输出到控制台。

Step 3: 验证 JWT
下面是如何验证 JWT 的示例代码:

<?php

require_once 'vendor/autoload.php';

use FirebaseJWTJWT;

// 接收到的 JWT
$jwt = "JWT";

// 密钥,用于验证签名
$key = "密钥";

try {
    // 验证 JWT
    $decoded = JWT::decode($jwt, $key, array('HS256'));

    // 输出解码后的用户信息
    echo "用户ID: " . $decoded->sub . "<br>";
    echo "用户名: " . $decoded->name . "<br>";
} catch (Exception $e) {
    echo '验证失败:' . $e->getMessage();
}
?>

在上述代码中,首先引入 Firebase JWT PHP 库。然后,接收到 JWT,并指定密钥用于验证签名。然后,使用 JWT::decode()

Langkah 3: Sahkan JWT

Berikut ialah contoh kod tentang cara mengesahkan JWT:
rrreee

Dalam kod di atas, mula-mula perkenalkan perpustakaan Firebase JWT PHP. Kemudian, JWT diterima dan kunci yang ditentukan digunakan untuk mengesahkan tandatangan. Kemudian, gunakan kaedah JWT::decode() untuk mengesahkan integriti JWT dan mengeluarkan maklumat pengguna yang dinyahkodkan ke halaman. 🎜🎜Ringkasan🎜JWT ialah mekanisme pengesahan dan kebenaran yang sangat praktikal Dengan menggunakan perpustakaan Firebase JWT PHP, kami boleh melaksanakan penjanaan dan pengesahan JWT dengan mudah dalam PHP. Artikel ini menyediakan kod contoh mudah untuk dibaca dan dipelajari oleh pembaca. 🎜

Atas ialah kandungan terperinci Gunakan JWT (JSON Web Token) untuk melaksanakan pengesahan keselamatan PHP. 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