#[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, }