Skip to content

Instantly share code, notes, and snippets.

@potatosalad
Created September 22, 2015 15:53
Show Gist options
  • Save potatosalad/85babbf782a0b3602a59 to your computer and use it in GitHub Desktop.
Save potatosalad/85babbf782a0b3602a59 to your computer and use it in GitHub Desktop.
Example of extracting the payload from a JWS signature
jwk_map = %{ "kty" => "oct", "k" => :base64url.encode("secret")}
jws_map = %{ "alg" => "HS256" }
jwt_map = %{ "test" => true }
signature = JOSE.JWT.sign(jwk_map, jws_map, jwt_map)
signature_compacted = JOSE.JWS.compact(signature)
{_, signature_map} = JOSE.JWS.expand(signature_compacted)
payload = JOSE.JWT.from(:base64url.decode(Map.get(signature_map, "payload")))
# one-liner version:
JOSE.JWT.from(:base64url.decode(Map.get(:erlang.element(2, JOSE.JWS.expand(signature_compacted)), "payload")))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment