#jwt #json #command-line-tool #encode-decode #header #token #web

app jwt-cli

一个由 Rust 构建的快速 CLI 工具,用于解码和编码 JWT

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

Download history 36/week @ 2024-05-01 16/week @ 2024-05-08 22/week @ 2024-05-15 282/week @ 2024-05-22 146/week @ 2024-05-29 100/week @ 2024-06-05 106/week @ 2024-06-12 100/week @ 2024-06-19 99/week @ 2024-06-26 103/week @ 2024-07-03 66/week @ 2024-07-10 65/week @ 2024-07-17 212/week @ 2024-07-24 94/week @ 2024-07-31 81/week @ 2024-08-07 80/week @ 2024-08-14

每月下载量 505

MIT 许可证 MIT

55KB
1K SLoC

jwt-cli

Dependabot Status

一个由 Rust 构建的快速 CLI 工具,用于解码和编码 JWT。

Continuous Integration GitHub release

jwt-cli 是一个命令行工具,用于帮助您处理 JSON Web Tokens (JWT)。像大多数 JWT 命令行工具一样,您可以解码几乎任何 JWT 的头部和声明体。然而,jwt-cli 与我所找到的其他工具不同,它允许您使用几乎任何您能想到的数据来编码一个新的 JWT。自定义头部值(一些),自定义声明体(只要它是 JSON,就可以),以及使用您需要的任何密钥。

除此之外,它由 Rust 编写,因此速度快且可移植(目前支持 Windows、macOS 和 Linux)。

安装

通过 HomebrewMacPorts(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支持bashelvishfishpowershellzsh的shell自动补全。要启用它,请运行以下命令

source <(jwt completion bash)

你可能希望将其添加到你的shell配置文件中,以便每次打开新shell时都可用

if hash jwt > /dev/null; then
  source <(jwt completion bash)
fi

贡献

我欢迎所有的问题和pull requests!这是我的第一个Rust项目,所以这个项目很可能可以写得更好。我唯一的要求是您遵循行为准则,并使用rustfmt来保持项目代码风格的统一。

要开始,你需要在你的系统上安装rustccargo。如果它们还没有安装,我建议使用rustup来安装它们!

构建和运行项目

安装完成后,我建议运行测试以确保一切顺利。

# run the tests
cargo test

如果没有错误,你应该可以通过cargo运行命令。

cargo run -- help

或者,如果你更喜欢发布构建

cargo run --release -- help

行为准则

变更日志

许可证

贡献者 ✨

感谢这些可爱的人们(emoji key)

Mike Engel
Mike Engel

💻 💬 📖 🤔 🚧 👀 ⚠️ 🐛
Kyle Burton
Kyle Burton

💻
Aaron Schaef
Aaron Schaef

💻
hughsimpson
hughsimpson

💻 ⚠️
Mat Kelly
Mat Kelly

💻 🐛
Jason
Jason

🐛
Ben Berry
Ben Berry

🐛
Kevin Lanni
Kevin Lanni

📖
Kosta Krauth
Kosta Krauth

💻 ⚠️ 📖
codedust
codedust

💻 🤔 ⚠️
Liz Frost
Liz Frost

💻
Carl Harris
Carl Harris

💻 ⚠️
Yusuke Kominami
Yusuke Kominami

💻 📖

本项目遵循all-contributors规范。欢迎任何形式的贡献!

依赖项

~7–18MB
~240K SLoC