Expand description
§rocket-session-store
rocket-session-store is a library for the rocket web framework. It manages sessions by using cookies and a customizable store.
§Quickstart
Using this library consists of two steps:
- Setting up the session store fairing when building the rocket.
- Using the session request guard.
use rocket_session_store::{
memory::MemoryStore,
SessionStore,
SessionResult,
Session,
CookieConfig,
};
use rocket::{
Rocket,
get,
routes,
launch,
};
use std::time::Duration;
// Using the `Session` request guard
#[get("/")]
async fn index(session: Session<'_, String>) -> SessionResult<String> {
let name: Option<String> = session.get().await?;
if let Some(name) = name {
Ok(format!("Hello, {}!", name))
} else {
Ok("Hello, world!".into())
}
}
#[launch]
fn rocket() -> _ {
// Instance a store that fits your needs and wrap it in a Box in SessionStore.
let memory_store: MemoryStore::<String> = MemoryStore::default();
let store: SessionStore<String> = SessionStore {
store: Box::new(memory_store),
name: "token".into(),
duration: Duration::from_secs(3600 * 24 * 3),
// The cookie config is used to set the cookie's path and other options.
cookie: CookieConfig::default(),
};
// Attach it to a rocket by calling `fairing()`
rocket::build().attach(store.fairing()).mount("/", routes![index])
}
§Contributing
If you wish to contribute, please read CONTRIBUTING.md.
Modules§
- An in-memory implementationof a session store.
Structs§
- The cookie options for the session cookie. Currently only a small subset of available options via the CookieBuilder are supported.
- A request guard implementing FromRequest to retrive the session based on the cookie from the user.
- Errors produced when accessing the session store.
- Store that keeps tracks of sessions
- The fairing for the session store.
Traits§
- A generic store in which to write and retrive sessions either trough an in memory hashmap or a database connection.
Type Aliases§
- A result wrapper around SessionError, allowing you to wrap the Result