- JWT于各服务器、客户端传递信息签名验证。
- 服务端签发Token
use \Firebase\JWT\JWT;
class MainController extends Controller
{
public function lssue()
{
$key = '344';
$time = time();
$token = [
'iss' => 'http://www.helloweba.net',
'aud' => 'http://www.helloweba.net',
'iat' => $time,
'nbf' => $time ,
'exp' => $time+7200,
'data' => [
'userid' => 1,
'username' => '李小龙'
]
];
echo JWT::encode($token, $key);
}
}
- 解析Token
use \Firebase\JWT\JWT;
class MainController extends Controller
{
public function verification()
{
$key = '344';
$jwt = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC93d3cuaGVsbG93ZWJhLm5ldCIsImF1ZCI6Imh0dHA6XC9cL3d3dy5oZWxsb3dlYmEubmV0IiwiaWF0IjoxNTI1MzQwMzE3LCJuYmYiOjE1MjUzNDAzMTcsImV4cCI6MTUyNTM0NzUxNywiZGF0YSI6eyJ1c2VyaWQiOjEsInVzZXJuYW1lIjoiXHU2NzRlXHU1YzBmXHU5Zjk5In19.Ukd7trwYMoQmahOAtvNynSA511mseA2ihejoZs7dxt0";
try {
JWT::$leeway = 60;
$decoded = JWT::decode($jwt, $key, ['HS256']);
$arr = (array)$decoded;
print_r($arr);
} catch(\Firebase\JWT\SignatureInvalidException $e) {
echo $e->getMessage();
}catch(\Firebase\JWT\BeforeValidException $e) {
echo $e->getMessage();
}catch(\Firebase\JWT\ExpiredException $e) {
echo $e->getMessage();
}catch(Exception $e) {
echo $e->getMessage();
}
}
}