3个版本 (破坏性更新)

0.3.0 2024年6月11日
0.2.0 2022年7月8日
0.1.0 2021年7月25日

身份验证中排名174

Download history 8/week @ 2024-04-28 26/week @ 2024-05-05 46/week @ 2024-05-12 85/week @ 2024-05-19 69/week @ 2024-05-26 55/week @ 2024-06-02 223/week @ 2024-06-09 100/week @ 2024-06-16 52/week @ 2024-06-23 66/week @ 2024-06-30 25/week @ 2024-07-07 82/week @ 2024-07-14 60/week @ 2024-07-21 79/week @ 2024-07-28 66/week @ 2024-08-04 49/week @ 2024-08-11

每月下载量255

MIT/Apache

21KB
304

NATS JWT (Rust)

Crates.io Crates.io Docs.rs

为与NATS一起使用生成使用NKEYs签名的JWT

支持生成账户和用户JWT,操作员JWT通常不会即时生成,因此不支持,尽管接受添加支持的PR。

示例

use nats_jwt::{KeyPair, Token};

// You would probably load the operator's seed via a config and use KeyPair::from_seed
let operator_signing_key = KeyPair::new_operator();

let account_keypair = KeyPair::new_account();
let account_signing_key = KeyPair::new_account();
let account_token = Token::new_account(account_keypair.public_key())
    .name("My Account")
    .add_signing_key(account_signing_key.public_key())
    .max_connections(100)
    .sign(&operator_signing_key);
println!("account_token: {}", account_token);

let user_keypair = KeyPair::new_user();
let user_key_pub = user_keypair.public_key();
let user_token = Token::new_user(account_keypair.public_key(), user_key_pub)
    .bearer_token(true)
    .name("My User")
    .max_subscriptions(10)
    .max_payload(1024 * 1024) // 1MiB
    .allow_publish("service.hello.world")
    .allow_subscribe("_INBOX.>")
    .sign(&account_signing_key);
println!("user_token: {}", user_token);

许可证

许可方式:

任选其一。

贡献

除非你明确声明,否则根据Apache-2.0许可证定义的,你故意提交以包含在工作中的任何贡献,将按上述方式双重许可,没有额外的条款或条件。

依赖

~4–5.5MB
~114K SLoC