gamegos / jwt
Json Web Token (JWT) PHP implementation
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-12-17 09:04:35 UTC
README
JSON Web Token (JWT) implementation based on draft-ietf-oauth-json-web-token-25.
Installation
The recommended way to install gamegos/jws is through Composer.
{ "require": { "gamegos/jwt": "~0.1" } }
Basic Usage
Encoding
$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
Validation
$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(); }
See examples folder for sample code.
Supported Signature Algorithms
This package uses gamegos/jws
for signing tokens. Currently supported signature and mac algorithms:
- HS256, HS384, HS512 (HMAC using SHA-XXX)
- RS256, RS384, RS512 (RSASSA-PKCS-v1_5 using SHA-XXX)
Details can be found here.