rocket-jwt

for rocket@0.4

```rust

![feature(procmacrohygiene, decl_macro)]

[macro_use]

extern crate rocket;

use rocket_jwt::jwt;

static SECRETKEY: &str = "secretkey";

[jwt(SECRET_KEY)]

pub struct UserClaim { id: String, }

[jwt("secret_2", exp = 100)]

pub struct UserClaim2 { id: String }

[get("/")]

fn index() -> String { let userclaim = UserClaim { id: format!("hellorocketjwt"), }; let token = UserClaim::sign(userclaim); println!("{:#?}", UserClaim::decode(token.clone())); token }

[get("/user_id")]

fn getueridfromjwt(user: UserClaim) -> String { format!("user id is {}", user.id) }

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

```

API

| attribute | type | description | default | |----------|------|-------------|---| | | String | jwt secret key, required | | | exp | Int | token expire after seconds | 2592000 (one month) | | leeway | Int | token expire leeway in seconds | 60 (one minute) |

Run example

cargo run --example rocket-jwt-demo

  1. get jwt token

curl http://localhost:8000

  1. use jwt token

curl -H "Authorization: Bearer YOUR_JWT_TOKEN" http://localhost:8000/user_id

License

MIT