How to implement JWT using PHP
JWT (JSON Web Tokens) is an open standard based on JSON for securely transferring information between two applications. It consists of 3 parts: Header, Payload and Signature. The Header contains metadata about the Token, the Payload is the part that actually stores the information, and the Signature is used to verify the integrity of the message.
In this article, we will explore how to implement JWT using PHP.
- Installation dependencies
JWT needs to be installed through Composer. If you have not installed Composer, you can install it with the following command:
curl -sS https://getcomposer.org/installer | php
Then move the Composer executable file to the /usr/local/bin directory:
sudo mv composer.phar /usr/local/bin/composer
Install dependencies:
composer require firebase/php-jwt
- Create Token
First, we need to create a Token using PHP's jwt_encode()
function. Here is an example:
use \Firebase\JWT\JWT; $key = "my_secret_key"; //密钥 $payload = array( "iss" => "localhost", "aud" => "localhost", "iat" => time(), "exp" => time()+60*60 //有效期1小时 ); $jwt = JWT::encode($payload, $key);
In the above example, we use the jwt_encode()
function to create a JWT. The $key
variable contains the JWT key, and the $payload
variable contains the information to be transmitted and the expiration time. The expiration time can be obtained using PHP's time()
function. Finally, the jwt_encode()
function returns a JWT string.
- Verify Token
We need to use PHP's jwt_decode()
function to verify the JWT. Here is an example:
use \Firebase\JWT\JWT; $key = "my_secret_key"; //密钥 $jwt = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJsb2NhbGhvc3QiLCJhdWQiOiJsb2NhbGhvc3QiLCJpYXQiOjE1NTg2NTQ2OTksImV4cCI6MTU1ODY5MTg5OSwiZW1haWwiOiJhZG1pbkBleGFtcGxlLmNvbSIsIm5hbWUiOiJhZG1pbiJ9.AmifgOPkE8lx4m4ovHShBc1sPLs9QnNgzuiBZfrjtLw"; try { $decoded = JWT::decode($jwt, $key, array('HS256')); print_r($decoded); } catch (Exception $e) { echo 'Invalid token: ' . $e->getMessage(); }
In the above example, we used the jwt_decode()
function to verify the JWT. If the verification is successful, the function will return an object containing the JWT information.
- Verify signature
The signature is used to verify the integrity of the JWT. We need to sign the message using a key that is known only to the signature verification mechanism. When the receiver receives the message, he will use the same key to decrypt and verify the message.
JWT uses a technology called "Hash Message Authentication Code" (HMAC) to sign the JWT. This technology requires hashing the JWT Header and Payload and then combining them with the key. Next is an example of signature verification:
use \Firebase\JWT\JWT; $key = "my_secret_key"; //密钥 $jwt = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJsb2NhbGhvc3QiLCJhdWQiOiJsb2NhbGhvc3QiLCJpYXQiOjE1NTg2NTQ2OTksImV4cCI6MTU1ODY5MTg5OSwiZW1haWwiOiJhZG1pbkBleGFtcGxlLmNvbSIsIm5hbWUiOiJhZG1pbiJ9.AmifgOPkE8lx4m4ovHShBc1sPLs9QnNgzuiBZfrjtLw"; try { $decoded = JWT::decode($jwt, $key, array('HS256')); $decoded_array = (array) $decoded; $signature_valid = JWT::verify("$jwt->header.$jwt->payload", $jwt->signature, $key); if ($signature_valid) { echo "Valid signature"; } else { echo "Invalid signature"; } } catch (Exception $e) { echo 'Invalid token: ' . $e->getMessage(); }
In the above example, we used the verify()
function to verify the signature. This function will return a boolean value. If the result is true, it means that the signature is valid.
Summary
In this article, we briefly introduced how to implement JWT using PHP. First, we need to install the JWT dependent library, then use the jwt_encode()
function to create the Token, use the jwt_decode()
function to verify the Token, and finally use the verify()
Function to verify signature. These functions can be implemented through Firebase's JWT library.
The above is the detailed content of How to implement JWT using PHP. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)
