JwksLoad()

edit

Parses a JWKS (JSON Web Key Set) — a JSON document containing multiple public keys, commonly published by OAuth/OIDC providers like Auth0, Okta, and Google at their /.well-known/jwks.json endpoint.

Returns an array of JWK structs.

Requires Extension: Crypto Extension

JwksLoad( source=string );

Returns: Array

Argument Description
source
string, required
edit

JWKS URL (https://...) or raw JSON string containing a keys array

Examples

edit
// Parse a JSON Web Key Set (JWKS) - a JSON document containing multiple public keys
// Commonly used to verify JWTs from OAuth/OIDC providers like Auth0, Okta, Google, etc.

// Simulate a JWKS (in production, you'd fetch this from the provider's JWKS endpoint) rsaKp = GenerateKeyPair( "RSA" ); ecKp = GenerateKeyPair( "EC" );
rsaJwk = serializeJSON( KeyToJwk( rsaKp.public ) ); ecJwk = serializeJSON( KeyToJwk( ecKp.public ) ); jwksJson = '{"keys":[' & rsaJwk & ',' & ecJwk & ']}';
// Parse the JWKS into an array of JWK structs keys = JwksLoad( jwksJson ); // keys is an array of structs, one per key
// Full JWT verification workflow with JWKS: // 1. Provider signs a JWT with their private key token = JwtSign( { sub: "user123", iss: "provider" }, rsaKp.private );
// 2. Consumer fetches the provider's JWKS and finds the right key // (in production, match by "kid" header) keys = JwksLoad( jwksJson ); publicKey = JwkToKey( keys[ 1 ] );
// 3. Verify the token claims = JwtVerify( token, publicKey ); // claims.sub == "user123"

See also