Working with JSON Web Tokens (JWT) can be a bit awkward, particularly when using the command line to make requests, so I've created a little tool to make life easier.

It's called hastilude and is available on NPM, to install run:

npm install -g hastilude or yarn global add hastilude

It allows for tokens to be generated from a static JSON file as well as to dissemble encrypted ones into a readable form.

Generating tokens

You probably already have a payload you want to send in a file (if not, you need to create one as a JSON string isn't accepted as an argument), you can then use hastilude to generate a JWT token from it.

test.json {% highlight json %} { "apples": "oranges", "black": "white" } {% endhighlight %}

from the command line, point at the file containing the the payload and set the secret:

hastilude generate --secret secret --payload test.json

This will output the token contents to command line. If you wanted to use it as a HTTP authorization header, say with HTTPie, you can add the --http flag to get the output:

Authorization:Bearer <generated token>

With HTTPie, that looks like:

http example.org "`hastilude generate -s secret -p test.json --http`"

Dismantling tokens

You can also use hastilude to dismantle a JWT for you:

hastilude dismantle -t <your jwt token>

{% highlight json %} { "apples": "oranges", "black": "white", "iat": 1518723649, "exp": 1518725449 } {% endhighlight %}

All contributions welcome, the Project is on github.