Skip to content

Instantly share code, notes, and snippets.

@jeswin
Last active May 8, 2021 07:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jeswin/02203f1288a0c23eac1901d2dc696e43 to your computer and use it in GitHub Desktop.
Save jeswin/02203f1288a0c23eac1901d2dc696e43 to your computer and use it in GitHub Desktop.
Create a JWT
basho \
--import fs fs \
--import crypto crypto \
-d header '{ "alg": "RS256", "type": "JWT" }' \
-d payload '{ "sub": "alice", "iss": "example.com", "iat": Date.now() }' \
-d toBase64 'x => Buffer.from(JSON.stringify(x)).toString("base64")' \
-d toBase64Url 'x => x.replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_")' \
-d base64Header 'k.toBase64Url(k.toBase64(k.header))' \
-d base64Payload 'k.toBase64Url(k.toBase64(k.payload))' \
-d privateKey 'fs.readFileSync(process.cwd() + "/privatekey.pem", "utf8")' \
-d signFunc 'crypto.createSign("RSA-SHA256")' \
-d sig \
'k.signFunc.update(`${k.base64Header}.${k.base64Payload}`),k.signFunc.end(),k.toBase64Url(k.signFunc.sign(k.privateKey, "base64"))' \
-d jwt '`${k.base64Header}.${k.base64Payload}.${k.sig}`' \
k.jwt
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment