gamegos / jwt
Json Web Token (JWT) PHP 实现
0.1.1
2015-04-09 09:39 UTC
Requires
- php: >=5.4
- gamegos/jws: ~1.0
Requires (Dev)
- phpunit/phpunit: 4.1.*
This package is not auto-updated.
Last update: 2024-09-24 07:52:38 UTC
README
基于 draft-ietf-oauth-json-web-token-25 的 JSON Web Token (JWT) 实现。
安装
推荐通过 Composer 安装 gamegos/jws。
{ "require": { "gamegos/jwt": "~0.1" } }
基本用法
编码
$key = 'some-secret-for-hmac'; $alg = 'HS256'; $token = new \Gamegos\JWT\Token(); $token->setClaim('sub', 'someone@example.com'); // alternatively you can use $token->setSubject('someone@example.com') method $token->setClaim('exp', time() + 60*5); $encoder = new \Gamegos\JWT\Encoder(); $encoder->encode($token, $key, $alg); printf("JWT TOKEN: %s\n", $token->getJWT()); //eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJzb21lb25lQGV4YW1wbGUuY29tIiwiZXhwIjoxNDA4NDUzNzkwfQ.2Fk5-UUMhOAcQH812LL0sdaf29zuf293nLhHp_VKBDg
验证
$jwtString = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJzb21lb25lQGV4YW1wbGUuY29tIiwiZXhwIjoxNDA4NDUyMzcxfQ.Fy1DLdfZBiR_khyTsghItDW3_1rM7osz_IxjiaiRto0'; $key = 'some-secret-for-hmac'; try { $validator = new \Gamegos\JWT\Validator(); $token = $validator->validate($jwtString, $key); print_r($token->getClaims()); print_r($token->getHeaders()); } catch (\Gamegos\JWT\Exception\JWTException $e) { printf("Invalid Token:\n %s\n", $e->getMessage()); //$e->getToken(); }
查看 示例 文件夹中的示例代码。
支持的签名算法
此包使用 gamegos/jws
进行令牌签名。目前支持的签名和mac算法:
- HS256, HS384, HS512 (使用 SHA-XXX 的 HMAC)
- RS256, RS384, RS512 (使用 SHA-XXX 的 RSASSA-PKCS-v1_5)
详细信息请见此处。