A command line tool to decode, sign and verify JWTs.
I created this tool to help me learn more about JWTs and to make it easier to decode, sign and verify JWTs. I also wanted to create a tool that I could use in my day to day work.
(Icon by GOWI)
To get a local copy up and running follow these simple steps.
Install the package globally with:
npm i -g jwter
Then run the command to generate a secret:
jwter sign top_secret '{"name": "Jack"}'
There are many subcommands which can be used to decode, sign and verify JWTs.
To decode a JWT, use the decode
command:
jwter decode <token>
It will then output the decoded JWT in the following format:
* Header:
{
"alg": "HS256",
"typ": "JWT"
}
* Payload:
{
"test": "test",
"iat": 1672777260
}
To sign a JWT, use the sign
command:
jwter sign <secret> <data>
The secret should be a string and the data should be a JSON string.
There are many options that can be used with the sign
command:
-a
or--algorithm
- The algorithm to use to sign the JWT. Defaults toHS256
.-e
or--expiresIn
- The time in seconds until the token expires.-s
or--sub
- The subject of the token.-i
or--iss
- The issuer of the token.-aud
or--audience
- The audience of the token.
Each one will be added to the payload of the JWT.
To verify a JWT, use the verify
command:
jwter verify <secret> <token>
The secret should be a string and the data should be a JSON string.
There are many options that can be used with the verify
command. These options will be used to verify the JWT:
-d
or--decode
- Decodes the JWT after verifying it.-ie
or--ignore-exp
- Ignores the expiry of the JWT.-s
or--sub
- The subject of the token.-i
or--iss
- The issuer of the token.-a
or--audience
- The audience of the token.
For more help type:
jwter --help
See the releases page for all releases and to download the binaries.
See the open issues for a list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the GNU General Public License v3.0 License. See LICENSE
for more information.
Jack Humphries - me@jackhumphries.io
Project Link: https://github.com/JackHumphries9/jwter