tokin/json-web-tokin

JSON Web Token 库

1.0 2019-04-29 14:50 UTC

This package is auto-updated.

Last update: 2024-09-11 15:24:15 UTC


README

Tokin 某些网站

描述

这是一个小型库,可用于验证 JSON Web Tokens。该库中有 2 个类:JsonWebTokenVerifier,其中 JsonWebToken 类允许分割令牌的各个部分,以便它们可以轻松地生成/派生。

要使用 Verifier,你需要一个 JsonWebToken 实例以及用于签名令牌的密钥(在许多情况下这将是你客户端的秘密密钥)。

示例

验证 JWT

use Tokin\JWT\JsonWebToken;
use Tokin\JWT\Verifier;

$token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6IjEyMzM0NjQ2NCIsImZpcnN0X25hbWUiOiJUZXN0IiwibGFzdF9uYW1lIjoiTWNUZXN0ZXJzb24iLCJlbWFpbCI6InRlc3RAdGVzdC5jb20iLCJleHBpcmVzIjoxMjMyMTQyfQ.7BHgbsBAyK0IRDKPtFOhHKFYta6_fdujngX64zMYrtg';
$key = 'abcdefghijklmno';

$verifier = new Verifier();
$jwt = new JsonWebToken($token);

return $verifier->verify($jwt, $key); // returns a boolean

从 JWT 中检索头信息

use Tokin\JWT\JsonWebToken;

$token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6IjEyMzM0NjQ2NCIsImZpcnN0X25hbWUiOiJUZXN0IiwibGFzdF9uYW1lIjoiTWNUZXN0ZXJzb24iLCJlbWFpbCI6InRlc3RAdGVzdC5jb20iLCJleHBpcmVzIjoxMjMyMTQyfQ.7BHgbsBAyK0IRDKPtFOhHKFYta6_fdujngX64zMYrtg';

$jwt = new JsonWebToken($token);

$headers = $jwt->getHeader(true); // this will return the JSON for the header, false will return the Base 64 URL Encoded value

// {"typ": "JWT", "alg":"HS256"}

从 JWT 中检索负载信息

use Tokin\JWT\JsonWebToken;

$token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6IjEyMzM0NjQ2NCIsImZpcnN0X25hbWUiOiJUZXN0IiwibGFzdF9uYW1lIjoiTWNUZXN0ZXJzb24iLCJlbWFpbCI6InRlc3RAdGVzdC5jb20iLCJleHBpcmVzIjoxMjMyMTQyfQ.7BHgbsBAyK0IRDKPtFOhHKFYta6_fdujngX64zMYrtg';

$jwt = new JsonWebToken($token);

$payload = $jwt->getPayload(true); // this will return the JSON for the header, false will return the Base 64 URL Encoded value

从 JWT 中检索签名

use Tokin\JWT\JsonWebToken;

$token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6IjEyMzM0NjQ2NCIsImZpcnN0X25hbWUiOiJUZXN0IiwibGFzdF9uYW1lIjoiTWNUZXN0ZXJzb24iLCJlbWFpbCI6InRlc3RAdGVzdC5jb20iLCJleHBpcmVzIjoxMjMyMTQyfQ.7BHgbsBAyK0IRDKPtFOhHKFYta6_fdujngX64zMYrtg';

$jwt = new JsonWebToken($token);

$signature = $jwt->getSignature();

检索原始 JWT

use Tokin\JWT\JsonWebToken;

$token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6IjEyMzM0NjQ2NCIsImZpcnN0X25hbWUiOiJUZXN0IiwibGFzdF9uYW1lIjoiTWNUZXN0ZXJzb24iLCJlbWFpbCI6InRlc3RAdGVzdC5jb20iLCJleHBpcmVzIjoxMjMyMTQyfQ.7BHgbsBAyK0IRDKPtFOhHKFYta6_fdujngX64zMYrtg';

$jwt = new JsonWebToken($token);

$token = $jwt->getOriginalToken();