假设您使用AWS,并且您想使用Cognito使用基于ID的身份验证。
然后,aws
为您提供了一个公共密钥,您可以用它来验证认知负载。
我们还假设您不希望或无法使用像jose这样的精美库,因为您被锁定在高度受限的环境中。
要走的路是可以使旧的BASH脚本Brian Kernighan骄傲。您必须先了解编码。Base64Url
需要转换为Base64。
这是使用填充字符=
实现的如果字符数可被4
整除,则无需填充。这涉及二进制数字表示。处理完后,您可以将Base64
转换为binary
。
但是如何仅使用BASH和BASH程序来做到这一点?
以下是一些选项:
要么忽略base64 -d
抱怨输入被截断:
<<<'SGVsbG8geW91Cg' base64 -d 2>/dev/null ||:
或在解码前用Bash修复base64填充:
base64URL='SGVsbG8geW91Cg'
printf -v pad_space '%*s' $((${#base64URL}%4)) ''
padded_base64="$base64URL${pad_space// /=}"
<<<"$padded_base64" base64 -d