jwt

Attribute Macro jwt 

Source
#[jwt]
Expand description

Attribute to generate a [jsonwebtoken claim] and associated metadata.

// expire default in 2592_000s
#[rocket_jwt::jwt("secret")]
struct User { id: String }

or

// expire in 10s
#[rocket_jwt::jwt("secret", exp = 10)]
struct User { id: String }

§Example


#[macro_use]
extern crate rocket;

use rocket_jwt::jwt;

static SECRET_KEY: &str = "secret_key";

#[jwt(SECRET_KEY)]
pub struct UserClaim {
    id: String,
}

#[get("/")]
fn index() -> String {
    let user_claim = UserClaim {
        id: format!("hello_rocket_jwt"),
    };
    let token = UserClaim::sign(user_claim);
    println!("{:#?}", UserClaim::decode(token.clone()));
    token
}

#[get("/user_id")]
fn get_uer_id_from_jwt(user: UserClaim) -> String {
    format!("user id is {}", user.id)
}

fn main() {
    rocket::build()
        .attach(UserClaim::fairing())
        .mount("/", routes![index, get_uer_id_from_jwt])
        .launch();
}

token default comes from request.header, if want get from cookie or query, user

#[rocket_jwt::jwt("secret", cookie = "token")]
pub struct UserClaim {
    id: String,
}

/// ```rust #[jwt(“secret”, query = “token”)] pub struct UserClaim { id: String, }