JWT (JSON Web Token) ist ein offener Standard für Authentifizierung und Autorisierung. JWT besteht aus drei Teilen, nämlich Header, Payload und Signature. Bei Verwendung von JWT sendet der Server ein JWT an den Client, und der Client überträgt das JWT in nachfolgende Anfragen. Der Server bestätigt die Legitimität der Anfrage, indem er die Signatur und den Gültigkeitszeitraum des JWT überprüft.
PHP ist eine häufig verwendete Webentwicklungssprache, die viele JWT-Implementierungsmethoden bereitstellt. Im Folgenden wird die Verwendung von JWT zur Identitätsauthentifizierung in PHP vorgestellt.
Bevor Sie JWT verwenden, müssen Sie das JWT-Paket von PHP installieren. Es kann über den folgenden Befehl installiert werden:
composer require firebase/php-jwt
Nach Abschluss der Installation kann JWT in das Projekt eingeführt werden:
require_once('vendor/autoload.php'); use Firebase\JWT\JWT;
Bei der Identitätsauthentifizierung muss der Server ein JWT generieren und senden an den Kunden. Der Prozess der JWT-Generierung umfasst die Generierung von Header, Payload und Signatur.
// 将需要编码的数据放到一个关联数组中 $payload = array( "user_id" => 123456, ); // 生成Header $header = array( "alg" => "HS256", // 采用的加密算法 "typ" => "JWT" ); // 生成JWT $jwt = JWT::encode($payload, SECRET_KEY, 'HS256'); // SECRET_KEY为加密密钥
Nachdem Sie das JWT generiert haben, senden Sie es einfach an den Client.
Bei nachfolgenden Anfragen des Clients muss das JWT übertragen werden und die Legitimität der Anfrage muss durch Serverüberprüfung bestätigt werden. Der Prozess der Serverüberprüfung des JWT umfasst die Dekodierung der drei Teile Header, Payload und Signatur sowie die Überprüfung, ob die Signatur korrekt ist und ob der Gültigkeitszeitraum abgelaufen ist.
// 解码JWT $jwt_decoded = JWT::decode($jwt, SECRET_KEY, array('HS256')); // 验证Signature和有效期 $jwt_verified = JWT::verify($jwt, SECRET_KEY, array('HS256'));
Wenn sowohl die Signatur als auch der Gültigkeitszeitraum überprüft werden, kann die Anfragebearbeitung fortgesetzt werden. Wenn die Überprüfung fehlschlägt, muss die Anfrage abgelehnt werden.
JWT hat einen Gültigkeitszeitraum und kann für mehrere Anfragen während des Gültigkeitszeitraums verwendet werden. Nach Ablauf muss der Client das JWT erneut abrufen und in die Anfrage einfügen. Bei der Verarbeitung eines JWT muss dessen Gültigkeitsdauer überprüft werden.
try { // 解码JWT $jwt_decoded = JWT::decode($jwt, SECRET_KEY, array('HS256')); // 检查有效期 if ($jwt_decoded->exp < time()) { // JWT已过期 throw new Exception('JWT已过期'); } } catch (Exception $e) { // JWT无效或已过期 // 需要重新获取JWT或返回错误 }
Die Verwendung von JWT zur Authentifizierung ist eine einfache und effektive Methode. PHP bietet viele JWT-Implementierungen, was die Verwendung von JWT in PHP sehr einfach macht. Sie müssen jedoch auf die Gültigkeitsdauer des JWT und dessen korrekte Dekodierung und Überprüfung achten. Im Folgenden finden Sie die Schritte und Vorsichtsmaßnahmen für die Verwendung von PHP zur Implementierung der JWT-Authentifizierung.
Das obige ist der detaillierte Inhalt vonLassen Sie uns darüber sprechen, wie Sie JWT zur Identitätsauthentifizierung in PHP verwenden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!