Crate rjwt[][src]

Provides an Actor and (de)serializable Token struct which support authenticating Javascript Web Tokens with a custom payload. See jwt.io for more information on the JWT spec.

The provided Actor uses the ECDSA algorithm to sign tokens (using the ed25519_dalek crate).

Example:

use std::time::{Duration, SystemTime};
use rjwt::{Actor, Token};

type Claims = ();

let actor1 = Actor::new("actor1".to_string());
let actor2 = Actor::new("actor2".to_string());

let token = Token::new(
    "example.com".to_string(),
    SystemTime::now(), Duration::from_secs(30),
    actor1.id().to_string(),
    ());

let encoded = actor1.sign_token(&token).unwrap();
let decoded: Token<String, Claims> = actor1.validate(&encoded).unwrap();
assert_eq!(token, decoded);
assert!(actor2.validate::<Claims>(&encoded).is_err());
println!("encoded size is {}", encoded.len());

Structs

Actor

An actor with an identifier of type T and an ECDSA keypair used to sign tokens.

ECSignature

Ed25519 signature.

Error

An error encountered while handling a Token.

Keypair

An ed25519 keypair.

PublicKey

An ed25519 public key.

SecretKey

An EdDSA secret key.

Token

A Javascript Web Token.

Enums

ErrorKind

What type of error was encountered. Auth means that the token signature failed validation.

Type Definitions

Result

The result of a Token operation.