thies / json-web-token
JSON Web Token library written in PHP
v1.0.0
2022-12-17 15:26 UTC
Requires
- php: ^8.1
- ext-openssl: *
- symfony/console: ^6.1
Requires (Dev)
- phpunit/phpunit: ^9
- psy/psysh: @stable
- squizlabs/php_codesniffer: ^3
README
JSON Web Token library written in PHP
Installation
composer require thies/json-web-token
Usage
Encoding
$header = [ 'alg' => 'HS256', 'typ' => 'JWT', ]; $payload = [ 'sub' => '1234567890', 'name' => 'John Doe', 'iat' => 1516239022 ]; $encodedToken = \JsonWebToken\JWT::encode($header, $payload, 'your-passphrase-or-key'); $encodedToken->get(); // eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.g0nxZDyzNvuhhuPrpwZFNdtGH2q0AQ0jbTdr5g5NMeA $encodedToken->getHeader(); // eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 $encodedToken->getPayload(); // eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ $encodedToken->getSignature(); // g0nxZDyzNvuhhuPrpwZFNdtGH2q0AQ0jbTdr5g5NMeA echo $encodedToken // eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.g0nxZDyzNvuhhuPrpwZFNdtGH2q0AQ0jbTdr5g5NMeA
Decoding
$jwtToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.g0nxZDyzNvuhhuPrpwZFNdtGH2q0AQ0jbTdr5g5NMeA'; $decodedToken = \JsonWebToken\JWT::decode($jwtToken, 'your-passphrase-or-key'); $decodedToken->getHeader(); // array $decodedToken->getPayload(); // array $decodedToken->isValid(); // bool
Supported algorithms
Algorithm | Supported |
---|---|
HS256 | ✔️ |
HS384 | ✔️ |
HS512 | ✔️ |
PS256 | ❌ |
PS384 | ❌ |
PS512 | ❌ |
RS256 | ✔️ |
RS384 | ✔️ |
RS512 | ✔️ |
ES256 | ❌ |
ES256K | ❌ |
ES384 | ❌ |
ES512 | ❌ |
EdDSA | ❌ |