16 个稳定版本 (4 个主要版本)
新版本 6.1.1 | 2024 年 8 月 21 日 |
---|---|
6.1.0 | 2024 年 5 月 27 日 |
6.0.0 | 2023 年 6 月 22 日 |
5.0.3 | 2022 年 4 月 27 日 |
2.5.1 | 2019 年 10 月 7 日 |
在 身份验证 中排名 #7
每月下载量 505
55KB
1K SLoC
jwt-cli
一个由 Rust 构建的快速 CLI 工具,用于解码和编码 JWT。
jwt-cli
是一个命令行工具,用于帮助您处理 JSON Web Tokens (JWT)。像大多数 JWT 命令行工具一样,您可以解码几乎任何 JWT 的头部和声明体。然而,jwt-cli
与我所找到的其他工具不同,它允许您使用几乎任何您能想到的数据来编码一个新的 JWT。自定义头部值(一些),自定义声明体(只要它是 JSON,就可以),以及使用您需要的任何密钥。
除此之外,它由 Rust 编写,因此速度快且可移植(目前支持 Windows、macOS 和 Linux)。
安装
通过 Homebrew 或 MacPorts(macOS),Cargo(跨平台)和 FreshPorts(FreeBSD)安装 jwt-cli
。如果您打算使用这些方法之一,请 跳过。
如果您无法使用下面的 Homebrew 或 Cargo 安装方法,您也可以从 发布页面 安装二进制文件。
预先构建的二进制文件仅适用于 64 位 Linux、macOS 和 Windows。如果您不在这些操作系统之一上,很抱歉!您需要从源代码构建它。有关如何安装和构建项目的详细信息,请参阅 贡献 部分。
您应该在您的 $PATH
中安装它。对于 Linux 和 macOS,通常是一个不错的选择是 /usr/local/bin
。对于 Windows,默认情况下并没有一个好的位置 :(。
Homebrew
# Install jwt-cli
brew install mike-engel/jwt-cli/jwt-cli
# Ensure it worked ok by running the help command
jwt help
MacPorts
sudo port install jwt-cli
更多信息在这里。
Cargo
如果你的系统支持它,你可以通过Cargo安装。在进行下一步之前,请确保你已经安装了Rust和Cargo,按照这些说明操作。
cargo install jwt-cli
二进制文件将安装到你的Cargo bin路径(~/.cargo/bin
)。请确保你的环境变量$PATH
包括此路径。
FreshPorts
如果你在使用FreeBSD,你可以使用pkg
工具在你的系统上安装jwt-cli
。
pkg install jwt-cli
非常感谢Sergey Osokin,他是FreeBSD的贡献者,将jwt-cli
添加到了FreeBSD的ports树中!
Scoop
jwt-cli
在Scoop的主仓库中可用,适用于Windows。
scoop install jwt-cli
Arch Linux
jwt-cli
可在Arch Linux的社区仓库中找到,可以通过pacman进行安装。
pacman -S jwt-cli
用法
要获取用法信息,请使用help
命令。
# top level help
jwt help
# command specific help
jwt help encode
作为管道的用法
-
参数告诉jwt-cli
从标准输入读取
jwt encode --secret=fake '{"hello":"world"}' | jwt decode -
当你处理一系列产生JWT的shell命令时非常有用。将结果通过jwt decode -
管道传递以解码它。
curl <auth API> | jq -r .access_token | jwt decode -
使用椭圆曲线密钥
目前,底层的令牌编码和解码库jsonwebtoken
不支持SEC1私钥格式,并需要转换为PKCS8类型。你可以从他们的README中了解更多。
Shell自动补全
jwt-cli
支持bash
、elvish
、fish
、powershell
和zsh
的shell自动补全。要启用它,请运行以下命令
source <(jwt completion bash)
你可能希望将其添加到你的shell配置文件中,以便每次打开新shell时都可用
if hash jwt > /dev/null; then
source <(jwt completion bash)
fi
贡献
我欢迎所有的问题和pull requests!这是我的第一个Rust项目,所以这个项目很可能可以写得更好。我唯一的要求是您遵循行为准则,并使用rustfmt来保持项目代码风格的统一。
要开始,你需要在你的系统上安装rustc
和cargo
。如果它们还没有安装,我建议使用rustup来安装它们!
构建和运行项目
安装完成后,我建议运行测试以确保一切顺利。
# run the tests
cargo test
如果没有错误,你应该可以通过cargo
运行命令。
cargo run -- help
或者,如果你更喜欢发布构建
cargo run --release -- help
行为准则
变更日志
许可证
贡献者 ✨
感谢这些可爱的人们(emoji key)
Mike Engel 💻 💬 📖 🤔 🚧 👀 ⚠️ 🐛 |
Kyle Burton 💻 |
Aaron Schaef 💻 |
hughsimpson 💻 ⚠️ |
Mat Kelly 💻 🐛 |
Jason 🐛 |
Ben Berry 🐛 |
Kevin Lanni 📖 |
Kosta Krauth 💻 ⚠️ 📖 |
codedust 💻 🤔 ⚠️ |
Liz Frost 💻 |
Carl Harris 💻 ⚠️ |
Yusuke Kominami 💻 📖 |
本项目遵循all-contributors规范。欢迎任何形式的贡献!
依赖项
~7–18MB
~240K SLoC