Sessions
MemoryStore, memory limits, automatic periodic cleanup.
● ● ●
RuniqueApp::builder(config)
.middleware(|m| {
m
// Memory limits: soft 5 MB, hard 10 MB
.with_session_memory_limit(5 * 1024 * 1024, 10 * 1024 * 1024)
// Automatic cleanup every 5 minutes
.with_session_cleanup_interval(5)
// Session lifetime (default: 24h)
.with_session_duration(Duration::hours(12))
})
pub async fn my_handler(mut request: Request) -> AppResult<Response> {
// Read
let user_id = request.session
.get::<i32>("user_id").await
.ok().flatten();
// Write
request.session.insert("user_id", 42).await.ok();
request.session.insert("username", "alice").await.ok();
// Delete a key
request.session.remove::<i32>("user_id").await.ok();
// Invalidate the entire session (logout)
request.session.flush().await.ok();
request.render("profile.html")
}