tokin / json-web-tokin
JSON Web Token 库
1.0
2019-04-29 14:50 UTC
Requires (Dev)
- phpunit/phpunit: ^7.0
This package is auto-updated.
Last update: 2024-09-11 15:24:15 UTC
README
Tokin 某些网站
描述
这是一个小型库,可用于验证 JSON Web Tokens。该库中有 2 个类:JsonWebToken
和 Verifier
,其中 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();