Download the PHP package nickbai/php-jwt without Composer
On this page you can find all versions of the php package nickbai/php-jwt. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download nickbai/php-jwt
More information about nickbai/php-jwt
Files in nickbai/php-jwt
Package php-jwt
Short Description A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.
License BSD-3-Clause
Homepage https://github.com/nick-bai/php-jwt
Informations about the package php-jwt
PHP-JWT
A simple library to encode and decode JSON Web Tokens (JWT) in PHP, conforming to RFC 7519.
Installation
Use composer to manage your dependencies and download PHP-JWT:
Optionally, install the paragonie/sodium_compat
package from composer if your
php is < 7.2 or does not have libsodium installed:
Example
Example encode/decode headers
Decoding the JWT headers without verifying the JWT first is NOT recommended, and is not supported by
this library. This is because without verifying the JWT, the header values could have been tampered with.
Any value pulled from an unverified header should be treated as if it could be any string sent in from an
attacker. If this is something you still want to do in your application for whatever reason, it's possible to
decode the header values manually simply by calling json_decode
and base64_decode
on the JWT
header part:
Example with RS256 (openssl)
Example with a passphrase
Example with EdDSA (libsodium and Ed25519 signature)
`
Example with multiple keys
Using JWKs
Using Cached Key Sets
The CachedKeySet
class can be used to fetch and cache JWKS (JSON Web Key Sets) from a public URI.
This has the following advantages:
- The results are cached for performance.
- If an unrecognized key is requested, the cache is refreshed, to accomodate for key rotation.
- If rate limiting is enabled, the JWKS URI will not make more than 10 requests a second.
Miscellaneous
Exception Handling
When a call to JWT::decode
is invalid, it will throw one of the following exceptions:
All exceptions in the Firebase\JWT
namespace extend UnexpectedValueException
, and can be simplified
like this:
Casting to array
The return value of JWT::decode
is the generic PHP object stdClass
. If you'd like to handle with arrays
instead, you can do the following:
Tests
Run the tests using phpunit:
New Lines in private keys
If your private key contains \n
characters, be sure to wrap it in double quotes ""
and not single quotes ''
in order to properly interpret the escaped characters.