1 个版本 (0 个不稳定版本)
1.0.1-beta.1 | Jul 26, 2024 |
---|
#131 in 命令行工具
124 monthly downloads
62KB
536 代码行
PASETO CLI
PASETO CLI 生成并验证 PASETO v4.local 令牌。
快速入门
安装
// Available on NPM
npm i -g @govcraft/paseto_cli@latest
生成令牌
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 提供了两个主要命令: generate
和 validate
。
生成令牌
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"
用例
- 用户身份验证:为用户登录系统生成令牌。
- API授权:在令牌中包含基于角色的访问控制。
- 单点登录(SSO):为多服务认证创建令牌。
- API密钥管理:生成和验证长期API密钥。
- 会话管理:为Web应用会话创建短期令牌。
- 微服务通信:保护服务间数据交换。
- IoT设备身份验证:使用中央服务器对IoT设备进行身份验证。
- 审计日志:使用自定义声明跟踪用户操作。
- 测试和开发:为认证流程测试生成特定令牌。
- 令牌轮换:实现令牌轮换策略。
安全考虑
- 密钥管理:安全存储PASETO v4密钥。
- 令牌有效期:根据安全要求设置适当的过期时间。
- 声明验证:在验证令牌时验证所有相关声明。
- 加密有效载荷:v4.local令牌加密其有效载荷,保护声明的机密性。加密密钥必须保持安全。
- 密钥轮换:实施策略以定期更新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