forked from packages/rocket_session
parent
2aaa877cb5
commit
d195aace48
@ -0,0 +1,33 @@ |
||||
# Sessions for Rocket.rs |
||||
|
||||
Adding cookie-based sessions to a rocket application is extremely simple: |
||||
|
||||
```rust |
||||
#![feature(proc_macro_hygiene, decl_macro)] |
||||
#[macro_use] extern crate rocket; |
||||
|
||||
use rocket_session::Session; |
||||
use std::time::Duration; |
||||
|
||||
fn main() { |
||||
rocket::ignite() |
||||
.attach(Session::fairing(Duration::from_secs(3600))) |
||||
.mount("/", routes![index]) |
||||
.launch(); |
||||
} |
||||
|
||||
#[get("/")] |
||||
fn index(session: Session) -> String { |
||||
let mut count: usize = session.get_or_default("count"); |
||||
count += 1; |
||||
session.set("count", count); |
||||
|
||||
format!("{} visits", count) |
||||
} |
||||
``` |
||||
|
||||
Anything serializable can be stored in the session, just make sure to unpack it to the right type. |
||||
|
||||
The session driver internally uses `serde_json::Value` and the `json_dotpath` crate. |
||||
Therefore, it's possible to use dotted paths and store the session data in a more structured way. |
||||
|
Loading…
Reference in new issue