Expand description
Generate JWTs signed using NKEYs for use with NATS
Supports generating account and user JWTs, operator JWTs are not typically generated on the fly and so aren’t supported, although a PR adding support would be accepted.
§Example
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);
§License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
§Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Structs§
- Account
- Account token type.
- Claims
- JWT claims for NATS compatible jwts
- Common
Nats Claims - Nats claims shared by user and accounts
- KeyPair
- Re-export of
KeyPair
from the nkeys crate. - Nats
Account Limits - Limits on what an account or users in the account can do
- Nats
Permissions - List of subjects that are allowed and/or denied
- Nats
Permissions Map - Publish and subcribe permissons
- Token
- JWT token builder.
- User
- User token type.
Enums§
- Nats
Claims - NATS claims describing settings for the user or account
Traits§
- Into
Nats Claims - Consume the input and return a
NatsClaims
struct - Into
Public Key - Consume the input and return a public KKEY