相关疑难解决方法(0)

如何使用 OpenSSL shell 命令创建 Json Web Token (JWT)?

我正在尝试使用 MacOS 上的命令行实用程序创建一个 JSON Web 令牌 (JWT),并在签名部分遇到了障碍。

这个要点给了我很大的启发: https //gist.github.com/indrayam/dd47bf6eef849a57c07016c0036f5207

对于我的 JWT,我有标题:

{"alg":"HS256","typ":"JWT"}
Run Code Online (Sandbox Code Playgroud)

有效载荷:

{"email":"jordan@example.com"}
Run Code Online (Sandbox Code Playgroud)

我的 hmac 秘诀是:

bigsecretisveryhardtoguessbysneakypeopleright
Run Code Online (Sandbox Code Playgroud)

或者在 base64 中:

Ymlnc2VjcmV0aXN2ZXJ5aGFyZHRvZ3Vlc3NieXNuZWFreXBlb3BsZXJpZ2h0Cg==
Run Code Online (Sandbox Code Playgroud)

我使用以下网站进行验证:https : //jwt.io/

我发现如果我使用 base64 版本的密钥将所有这些输入到站点中,它会生成以下 JWT,该 JWT 成功地验证了我正在测试的站点:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImpvcmRhbkBleGFtcGxlLmNvbSJ9.C3MVjfmnul8dLNIgiv6Dt3jSefD07Y0QtDrOZ5oYSXo
Run Code Online (Sandbox Code Playgroud)

在 bash 我试过这个:

jwt_header=$(echo -n '{"alg":"HS256","typ":"JWT"}' | base64 | sed s/\+/-/g | sed 's/\//_/g' | sed -E s/=+$//)

payload=$(echo -n '{"email":"jordan@example.com"}' | base64 | sed s/\+/-/g |sed 's/\//_/g' |  sed -E s/=+$//)

hmac_signature=$(echo -n "${jwt_header}.${payload}" | openssl dgst -sha256 -hmac "${key}" -binary | openssl base64 -e …
Run Code Online (Sandbox Code Playgroud)

linux bash openssl hmac jwt

13
推荐指数
1
解决办法
7057
查看次数

如何使用bash/shell脚本创建RS256 JWT断言?

我正在尝试设置一个shell脚本来从Box帐户中获取文件.为此,需要一个身份验证令牌.必须通过脚本自动生成身份验证令牌,因此无需手动执行步骤.这可以通过构建和提交JWT索赔来完成.

Box的文档规定它们只接受"RS256","RS384"和"RS512".我已经能够设置我需要的一切,除了使用Box的文档和本网站创建断言:

http://willhaley.com/blog/generate-jwt-with-bash/

我花了几个小时搜索网站,看看我是否能找到关于如何使用bash/shell脚本生成断言的任何指示都无济于事.我链接的网站是我发现的最接近的网站,但它使用的是HS256,Box不支持.

我的脚本目前几乎与我之前链接的网站上的第一个脚本相同(我有一个单独的脚本,我用来测试实际上用手动生成的身份验证令牌抓取文件).请帮助生成断言所需的命令.

linux bash shell jwt

1
推荐指数
1
解决办法
2496
查看次数

标签 统计

bash ×2

jwt ×2

linux ×2

hmac ×1

openssl ×1

shell ×1