. .gh-api-examples.conf


# See this link:
# https://auth0.com/docs/secure/tokens/json-web-tokens/validate-json-web-tokens
# https://datatracker.ietf.org/doc/html/rfc7519#section-7.2


# If the script is passed an argument $1 use that as the JWT
if [ -z "$1" ]
  then
    JWT=$(ruby tiny-get-jwt.rb ${private_pem_file} ${default_app_id})
  else
    JWT=$1
fi

echo "======================== JWT ==========================" >&2
echo ""  >&2
echo ${JWT}
echo ""  >&2
echo "=======================================================" >&2
echo ====================== Before the first . ==================== >&2
echo  >&2
echo ${JWT%%.*} >&2
echo ${JWT%%.*} | base64 -d >&2
echo >&2
echo ======================================================== >&2
echo ====================== Upto 2nd . ==================== >&2
echo >&2
JWT2=${JWT%.*}
echo ${JWT2} >&2
echo ${JWT2##*.} >&2
echo ${JWT2##*.} | base64 -d >&2
echo >&2
echo ======================================================== >&2
echo ""  >&2
echo ""  >&2
echo "==================== Decoded JWT ======================"  >&2
echo ""  >&2
echo ${JWT} | jq -R 'split(".")'  >&2
echo ""  >&2
echo "======================================================="  >&2

echo "==================== Decoded JWT ======================"  >&2
echo ""  >&2
echo ${JWT} | jq -R 'split(".") | .[1] | @base64d '  >&2
echo ""  >&2
echo "======================================================="  >&2
echo "==================== Decoded JWT ======================"  >&2
echo ""  >&2
echo ${JWT} | jq -R 'split(".") | .[1] | @base64d | fromjson'  >&2
echo ""  >&2
echo "======================================================="  >&2


echo "======================== JWT =========================="  >&2
echo ""  >&2
echo ${JWT}
echo ""  >&2
echo
echo "======================================================="  >&2
echo ====================== Before the first . ==================== >&2
echo >&2
echo ${JWT%%.*} >&2
echo ${JWT%%.*} | base64 -d >&2
echo >&2
echo ======================================================== >&2
echo ====================== Upto 2nd . ==================== >&2
echo >&2
JWT2=${JWT%.*} >&2
echo ${JWT2} >&2
echo ${JWT2##*.} >&2
echo ${JWT2##*.} | base64 -d >&2
echo >&2
echo ======================================================== >&2
echo ""  >&2
echo ""  >&2
echo "==================== Decoded JWT ======================"  >&2
echo ""  >&2
echo ${JWT} | jq -R 'split(".")'  >&2
echo ""  >&2
echo "======================================================="  >&2
echo 
echo "==================== Decoded JWT 0 ======================"  >&2
echo ""  >&2
echo ${JWT} | jq -R 'split(".") | .[0] | @base64d '  >&2
echo ""  >&2
echo "======================================================="  >&2

echo "==================== Decoded JWT 0 ======================"  >&2
echo ""  >&2
echo ${JWT} | jq -R 'split(".") | .[0] | @base64d | fromjson'  >&2
echo ""  >&2
echo "======================================================="  >&2
echo "==================== Decoded JWT 1======================"  >&2
echo ""  >&2
echo ${JWT} | jq -R 'split(".") | .[1] | @base64d | fromjson'  >&2
echo ""  >&2
echo "======================================================="  >&2

echo "==================== Decoded JWT 1 ======================"  >&2
echo ""  >&2
echo ${JWT} | jq -R 'split(".") | .[1] | @base64d '  >&2
echo ""  >&2
echo "======================================================="  >&2
echo "==================== Decoded JWT 1======================"  >&2
echo ""  >&2
echo ${JWT} | jq -R 'split(".") | .[1] | @base64d | fromjson'  >&2
echo ""  >&2
echo "======================================================="  >&2
