From fd9cabe50168ce1b5a4a09a6d0477933f392eb12 Mon Sep 17 00:00:00 2001 From: Starfall Date: Wed, 1 Nov 2023 19:02:29 -0500 Subject: decode-jwt --- decode-jwt | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100755 decode-jwt diff --git a/decode-jwt b/decode-jwt new file mode 100755 index 0000000..0d4ddb3 --- /dev/null +++ b/decode-jwt @@ -0,0 +1,28 @@ +#!/usr/bin/env zsh +set -euo pipefail +usage="usage: `basename $ZSH_ARGZERO` token" + +function pretty_json { + [ $# -ge 1 ] && str=$1 || str=$(<&0) + + # could read a JSON_PRETTY_PRINTER env variable in case of fancy stuff like `echo $str | underscore print --color` + # but we leave this as an exercise to the reader + + if command -v jq &>/dev/null; then + print $str | jq --color-output \ + || print $str + elif python -m json.tool -h &>/dev/null; then + print $str | python -m json.tool \ + || print $str + else + print $str + fi +} + +[ $# -ne 1 ] && print $usage >&2 && exit 1 +[ $1 = "-h" ] && print $usage && exit 0 + +IFS='.' read header payload signature <<<$1 + +echo $payload | sed "s/_/\//g" | sed "s/-/+/g" | base64 -d | pretty_json + -- cgit