#paseto #tokens #security #authentication #api-key #command-line-tool

应用 paseto_cli

A command-line tool for generating and validating PASETO v4.local tokens with custom claims and multiple output formats

1 个版本 (0 个不稳定版本)

1.0.1-beta.1Jul 26, 2024

#131 in 命令行工具

Download history 104/week @ 2024-07-21 20/week @ 2024-07-28

124 monthly downloads

GPL-3.0 许可证

62KB
536 代码行

PASETO CLI

PASETO CLI 生成并验证 PASETO v4.local 令牌。

Release GitHub Release License

快速入门

安装

// Available on NPM
npm i -g @govcraft/paseto_cli@latest

使用 Cargo 或直接从 二进制文件 安装。

生成令牌

echo "your-32-byte-key-in-base64" | paseto_cli generate --subject "user123" --expiration "2h"

验证令牌

echo "your-32-byte-key-in-base64" | paseto_cli validate --token "v4.local.your-token-here" --subject "user123"

功能

  • 生成具有自定义声明的 PASETO v4.local 令牌
  • 验证现有令牌并验证其声明
  • 支持多种输出格式:纯文本、美观和 JSON
  • 处理相对时间表达式(例如,“2h”,“1d”)
  • 遵循 PASETO 最佳实践
  • 将在 1.0 版本之前添加隐式断言和页脚支持

目录表

安装

下载发布二进制文件

您可以直接从 PASETO CLI 发布页面 下载适用于您的系统的预编译二进制文件。这是快速入门的最简单方法。

使用 npm

要使用 npm 安装 PASETO CLI,请运行以下命令

npm i -g @govcraft/paseto_cli@latest

这将全局安装 PASETO CLI 工具。

使用 Cargo (Rust 的包管理器)

如果您已经在您的系统上安装了 Rust,您可以使用 Cargo,Rust 的包管理器,来安装 PASETO CLI。首先,确保您已安装 Rust 和 Cargo(您可以从 rustup.rs 获取它们),然后运行

cargo install paseto_cli

此命令将在您的系统上下载、编译和安装 PASETO CLI 工具。

从源码

要构建源码

git clone https://github.com/Govcraft/paseto-cli.git
cd paseto-cli
cargo build --release

二进制文件将在 target/release/paseto_cli 目录中可用。

用法

PASETO CLI 提供了两个主要命令: generatevalidate

生成令牌

echo "your-32-byte-key-in-base64" | paseto_cli generate [OPTIONS]

选项

  • -s, --subject <SUBJECT>: 设置主题声明
  • -, --发行者 <ISSUER>: 设置发行者声明
  • -, --受众 <AUDIENCE>: 设置受众声明
  • --jti <JTI>: 设置令牌标识符声明
  • --expiration <EXPIRATION>: 设置过期时间
  • --not-before <NOT_BEFORE>: 设置不可用时间
  • --issued-at <ISSUED_AT>: 设置发行时间
  • -, --自定义 <KEY=VALUE>: 添加自定义声明

验证令牌

echo "your-32-byte-key-in-base64" | paseto_cli validate --token <TOKEN> [OPTIONS]

选项

  • -, --令牌 <TOKEN>: 指定要验证的PASETO令牌(必需)
  • -, --主题 <SUBJECT>: 指定预期的主题声明
  • -, --发行者 <ISSUER>: 指定预期的发行者声明
  • -, --受众 <AUDIENCE>: 指定预期的受众声明
  • --jti <JTI>: 指定预期的令牌标识符声明
  • --expiration <EXPIRATION>: 指定预期的过期时间
  • --not-before <NOT_BEFORE>: 指定预期的不可用时间
  • --issued-at <ISSUED_AT>: 指定预期的发行时间
  • -, --自定义 <KEY=VALUE>: 指定预期的自定义声明

全局选项

  • -, --格式 <FORMAT>: 设置输出格式(纯文本、美观、json)
  • -h, --帮助: 打印帮助信息
  • -V, --版本: 打印版本信息

示例

使用自定义声明生成令牌

echo "your-32-byte-key-in-base64" | paseto_cli generate --subject "user123" --expiration "2h" --custom role=admin

使用美观输出验证令牌

echo "your-32-byte-key-in-base64" | paseto_cli --format pretty validate --token "v4.local.your-token-here" --subject "user123"

生成带有JSON输出的令牌

echo "your-32-byte-key-in-base64" | paseto_cli --format json generate --subject "user123" --expiration "2h"

用例

  1. 用户身份验证:为用户登录系统生成令牌。
  2. API授权:在令牌中包含基于角色的访问控制。
  3. 单点登录(SSO):为多服务认证创建令牌。
  4. API密钥管理:生成和验证长期API密钥。
  5. 会话管理:为Web应用会话创建短期令牌。
  6. 微服务通信:保护服务间数据交换。
  7. IoT设备身份验证:使用中央服务器对IoT设备进行身份验证。
  8. 审计日志:使用自定义声明跟踪用户操作。
  9. 测试和开发:为认证流程测试生成特定令牌。
  10. 令牌轮换:实现令牌轮换策略。

安全考虑

  1. 密钥管理:安全存储PASETO v4密钥。
  2. 令牌有效期:根据安全要求设置适当的过期时间。
  3. 声明验证:在验证令牌时验证所有相关声明。
  4. 加密有效载荷:v4.local令牌加密其有效载荷,保护声明的机密性。加密密钥必须保持安全。
  5. 密钥轮换:实施策略以定期更新PASETO v4密钥。

贡献

欢迎贡献。有关详细信息,请参阅贡献指南

许可证

PASETO CLI采用GNU通用公共许可证v3.0授权。有关详细信息,请参阅许可文件

关于作者

我是@rrrodzilla,一名拥有30年行业经验的技术人员。我曾是一名SOA和云架构师,也是AWS Rust编程语言的Principal Technical Product Manager。目前,我是Govcraft的所有者和运营商,专注于Rust和AI解决方案的建设和咨询。

更多信息,请访问https://www.govcraft.ai


有关问题、功能请求或疑问,请在https://github.com/Govcraft/paseto-cli/issues中提出问题。

依赖关系

~12–22MB
~409K SLoC