使用 JWT (JSON Web Token) 實作 PHP 安全驗證
JWT (JSON Web Token) 是一種用於身分驗證和授權的開放標準。它由三個部分組成:頭部(header)、負載(payload)和簽名(signature)。頭部通常包含演算法和令牌類型,負載包含使用者資訊和其他相關數據,簽名用於驗證令牌的完整性。
在 PHP 中,可以使用一些函式庫來輕鬆實現 JWT 的產生和驗證。本文將介紹如何使用 Firebase JWT PHP 函式庫來實作 JWT 的產生和驗證,範例程式碼如下:
Step 1: 安裝 Firebase JWT PHP 函式庫
首先,需要透過 Composer 安裝 Firebase JWT PHP 函式庫。開啟終端,切換到專案目錄,執行以下指令:
composer require firebase/php-jwt
Step 2: 產生JWT
以下範例程式碼示範如何產生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; ?>
在上述程式碼中,首先需要引入Firebase JWT PHP 函式庫,然後定義一個金鑰。接下來,建立一個包含使用者資訊的關聯數組作為負載,其中可以包含任何需要的使用者資訊。最後,使用 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()
方法驗證 JWT 的完整性,並將解碼後的使用者資訊輸出到頁面。
總結
JWT 是一種非常實用的身份驗證和授權機制,透過使用 Firebase JWT PHP 程式庫,我們能夠輕鬆地在 PHP 中實現 JWT 的生成和驗證。本文提供了簡單的範例程式碼,供讀者參考和學習。
以上是使用 JWT(JSON Web Token) 實作 PHP 安全驗證的詳細內容。更多資訊請關注PHP中文網其他相關文章!