Crate tower_cookies
source ·Expand description
A cookie manager middleware built on top of tower.
§Example
With axum:
use axum::{routing::get, Router};
use std::net::SocketAddr;
use tower_cookies::{Cookie, CookieManagerLayer, Cookies};
#[tokio::main]
async fn main() {
let app = Router::new()
.route("/", get(handler))
.layer(CookieManagerLayer::new());
let addr = SocketAddr::from(([127, 0, 0, 1], 3000));
let listener = tokio::net::TcpListener::bind(&addr).await.unwrap();
axum::serve(listener, app.into_make_service())
.await
.unwrap();
}
async fn handler(cookies: Cookies) -> &'static str {
cookies.add(Cookie::new("hello_world", "hello_world"));
"Check your cookies."
}
A complete CRUD cookie example in examples/counter.rs
Modules§
- HTTP cookie parsing and cookie jar management.
- Middleware to use
Cookies
.
Structs§
- Representation of an HTTP cookie.
- Middleware to use
Cookies
. - Layer to apply
CookieManager
middleware. - A parsed on-demand cookie jar.
- A cryptographic master key for use with
Signed
and/orPrivate
jars. - A child cookie jar that authenticates its cookies. It signs all the cookies added to it and verifies cookies retrieved from it. Any cookies stored in
SignedCookies
are provided integrity and authenticity. In other words, clients cannot tamper with the contents of a cookie nor can they fabricate cookie values, but the data is visible in plaintext.