lcobucci / jose-parsing
A basic Base64Url and JSON encoding/decoding implementation
Installs: 505 394
Dependents: 3
Suggesters: 0
Security: 0
Stars: 25
Watchers: 1
Forks: 2
Open Issues: 0
Requires
- php: ^7.4 || ^8.0
- ext-json: *
Requires (Dev)
- infection/infection: ^0.16
- lcobucci/coding-standard: ^4.0
- phpstan/extension-installer: ^1.0
- phpstan/phpstan: ^0.12
- phpstan/phpstan-deprecation-rules: ^0.12
- phpstan/phpstan-phpunit: ^0.12
- phpstan/phpstan-strict-rules: ^0.12
- phpunit/phpunit: ^9.1
This package is auto-updated.
Last update: 2020-12-15 08:52:39 UTC
README
A base64Url and JSON encoding/decoding implementation.
Installation
Package is available on Packagist, you can install it using Composer.
composer require lcobucci/jose-parsing
Usage
You probably won't need to depend on this library directly. However, feel free to use its base64url and JSON (with some extra validation) encoding/decoding.
Encoding
use Lcobucci\Jose\Parsing\Parser; $bilboQuote = "It’s a dangerous business, Frodo, going out your door. You step " . "onto the road, and if you don't keep your feet, there’s no knowing " . "where you might be swept off to."; $encoder = new Parser(); echo $encoder->jsonEncode(['testing' => 'test']); // {"testing":"test"} echo $encoder->base64UrlEncode($bilboQuote); /* That quote is used in RFC 7520 example (in UTF-8 encoding, sure), and the output is (line breaks added for readbility): SXTigJlzIGEgZGFuZ2Vyb3VzIGJ1c2luZXNzLCBGcm9kbywgZ29pbmcgb3V0IHlvdXIgZG9vci4gWW 91IHN0ZXAgb250byB0aGUgcm9hZCwgYW5kIGlmIHlvdSBkb24ndCBrZWVwIHlvdXIgZmVldCwgdGhl cmXigJlzIG5vIGtub3dpbmcgd2hlcmUgeW91IG1pZ2h0IGJlIHN3ZXB0IG9mZiB0by4 */
Decoding
use Lcobucci\Jose\Parsing\Parser; $bilboQuote = "SXTigJlzIGEgZGFuZ2Vyb3VzIGJ1c2luZXNzLCBGcm9kbywgZ29pbmcgb3V0IHlvdXIgZG9vci4gWW" . "91IHN0ZXAgb250byB0aGUgcm9hZCwgYW5kIGlmIHlvdSBkb24ndCBrZWVwIHlvdXIgZmVldCwgdGhl" . "cmXigJlzIG5vIGtub3dpbmcgd2hlcmUgeW91IG1pZ2h0IGJlIHN3ZXB0IG9mZiB0by4"; $decoder = new Parser(); var_dump($decoder->jsonDecode('{"testing":"test"}')); // object(stdClass)#1 (1) { ["testing"] => string(4) "test" } echo $decoder->base64UrlDecode($bilboQuote); /* The output would be the same as the quote used in previous example: "It’s a dangerous business, Frodo, going out your door. You step " "onto the road, and if you don't keep your feet, there’s no knowing " "where you might be swept off to." */