A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.(JWT无状态api认证)
A simple library to encode and decode JSON Web Tokens (JWT) in PHP, based on firebase/jwt, add the decode() third param default 'HS256' (JWT restful api )
Use composer to manage your dependencies and download PHP-JWT:
composer require fizzday/fizzjwt dev-master
<?php
use Fizzday\FizzJWT\FizzJWT;
$key = "example_key";
$payload = array(
"iss" => "http://fizzday.net",
"aud" => "http://fizzday.net",
"iat" => time(),
"exp" => time() + 60,
"nbf" => time() + 0,
"name" => "fizzday",
"age" => 26,
"sex" => "MALE"
);
/**
* IMPORTANT:
* You must specify supported algorithms for your application. See
* https://tools.ietf.org/html/draft-ietf-jose-json-web-algorithms-40
* for a list of spec-compliant algorithms.
*/
$token = FizzJWT::encode($payload, $key);
$decoded = FizzJWT::decode($token, $key);
print_r($decoded);
/*
NOTE: This will now be an object instead of an associative array. To get
an associative array, you will need to cast it as such:
*/
$decoded_array = (array) $decoded;
/**
* You can add a leeway to account for when there is a clock skew times between
* the signing and verifying servers. It is recommended that this leeway should
* not be bigger than a few minutes.
*
* Source: http://self-issued.info/docs/draft-ietf-oauth-json-web-token.html#nbfDef
*/
// $leeway in seconds, 60token,nbf
FizzJWT::$leeway = 60;
$decoded = FizzJWT::decode($token, $key);
claim
iss: token
sub: token
aud: token
exp: token
nbf: JWT
iat: JWTJWT
jti: JWT. JWTtoken