Examples
JWS Creation
<?php
use Jose\Component\Core\AlgorithmManager;
use Jose\Component\Core\JWK;
use Jose\Component\Signature\Algorithm\ES256;
use Jose\Component\Signature\JWSBuilder;
use Jose\Component\Signature\Serializer\CompactSerializer;
require_once 'vendor/autoload.php';
$claims = [
'iss' => 'https://example.com', // Issuer
'sub' => '1234567890', // Subject
'aud' => 'https://api.example.com', // Audience
'exp' => time() + 3600, // Expiration time (1 hour)
'nbf' => time(), // Not before
'iat' => time(), // Issued at
'jti' => bin2hex(random_bytes(16)), // JWT ID
];
$payload = json_encode($claims);
$privateKey = '{"use":"sig","alg":"ES256","kid":"my-key-id","kty":"EC","crv":"P-256","d":"j5RP0Z4w9JvTacrP6fGYB50U97EvGE8kAMQ-YdNva7c","x":"JQJ8BPvO1oRaTBL2BPZG3y7AhOkZ3d-IZH6GdW-eNdo","y":"nSbyi6pS1ve6eNuusDkqifCUz6Msnkm8ivJHgaQgZfI"}';
$jwk = JWK::createFromJson($privateKey);
$algorithmManager = new AlgorithmManager([new ES256()]);
$jwsBuilder = new JWSBuilder($algorithmManager);
$jws = $jwsBuilder->create()
->withPayload($payload)
->addSignature($jwk, ['alg' => 'ES256', 'kid' => 'my-key-id'])
->build();
$serializer = new CompactSerializer();
$token = $serializer->serialize($jws);
var_dump($token);JWS Loading and Verification
JWE Creation
JWE Loading and Verification
Last updated
Was this helpful?