- PHP 7 +
- OpenSSL (Version >= 1.0.1f) Might work with older version as well, but I did not check that.
$ git clone https://github.com/cdoco/php-jwt.git
$ cd php-jwt
$ phpize && ./configure --with-openssl=/path/to/openssl
$ make && make install
$key = "example_key";
$claims = array(
"data" => [
"name" => "ZiHang Gao",
"admin" => true
],
"iss" => "http://example.org",
"sub" => "1234567890",
);
// default HS256 algorithm
$token = jwt_encode($claims, $key);
echo $token . PHP_EOL;
//eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.
//eyJpc3MiOiJodHRwOlwvXC9leGFtcGxlLm9yZyIsInN1YiI6IjEyMzQ1Njc4OTAiLCJuYW1lIjoiWmlIYW5nIEdhbyIsImFkbWluIjp0cnVlfQ.
//2lFeBTsRegsjXiBCZNkW41KFlsZPSFu7KTsyAM9lUiQ
print_r(jwt_decode($token, $key));
/**
Array
(
[data] => Array
(
[name] => ZiHang Gao
[admin] => 1
)
[iss] => http://example.org
[sub] => 1234567890
)
*/
//encode
string jwt_encode(array $claims, string $key [, string $alg = 'HS256'])
//decode
array jwt_decode(string $token, string $key [, string $alg = 'HS256'])
algorithm | - | - | - |
---|---|---|---|
HMAC | HS256 | HS384 | HS512 |
RSA | RS256 | RS384 | RS512 |
ECDSA | ES256 | ES384 | ES512 |
PHP License. See the LICENSE file.