kit_rs/session/
mod.rs

1//! Session management for Kit framework
2//!
3//! Provides Laravel-like session handling with database storage.
4//!
5//! # Features
6//!
7//! - Secure session cookies (HttpOnly, Secure, SameSite)
8//! - Database-backed storage for scalability
9//! - CSRF token generation per session
10//! - Flash messages for one-time notifications
11//! - Session data stored as JSON
12//!
13//! # Example
14//!
15//! ```rust,ignore
16//! use kit::session::{session, session_mut};
17//!
18//! // Read from session
19//! if let Some(s) = session() {
20//!     let name: Option<String> = s.get("name");
21//! }
22//!
23//! // Write to session
24//! session_mut(|s| {
25//!     s.put("name", "John");
26//!     s.flash("success", "Item saved!");
27//! });
28//! ```
29//!
30//! # Setup
31//!
32//! Add the `SessionMiddleware` to your bootstrap:
33//!
34//! ```rust,ignore
35//! use kit::{global_middleware, SessionMiddleware, SessionConfig};
36//!
37//! pub async fn register() {
38//!     let config = SessionConfig::from_env();
39//!     global_middleware!(SessionMiddleware::new(config));
40//! }
41//! ```
42
43pub mod config;
44pub mod driver;
45pub mod middleware;
46pub mod store;
47
48pub use config::SessionConfig;
49pub use driver::DatabaseSessionDriver;
50pub use middleware::{
51    auth_user_id, clear_auth_user, clear_session, generate_csrf_token, generate_session_id,
52    get_csrf_token, invalidate_session, is_authenticated, regenerate_session_id, session,
53    session_mut, set_auth_user, set_session, take_session, SessionMiddleware,
54};
55pub use store::{SessionData, SessionStore};