Module session

Module session 

Source
Expand description

Session management for Kit framework

Provides Laravel-like session handling with database storage.

§Features

  • Secure session cookies (HttpOnly, Secure, SameSite)
  • Database-backed storage for scalability
  • CSRF token generation per session
  • Flash messages for one-time notifications
  • Session data stored as JSON

§Example

use kit::session::{session, session_mut};

// Read from session
if let Some(s) = session() {
    let name: Option<String> = s.get("name");
}

// Write to session
session_mut(|s| {
    s.put("name", "John");
    s.flash("success", "Item saved!");
});

§Setup

Add the SessionMiddleware to your bootstrap:

use kit::{global_middleware, SessionMiddleware, SessionConfig};

pub async fn register() {
    let config = SessionConfig::from_env();
    global_middleware!(SessionMiddleware::new(config));
}

Re-exports§

pub use config::SessionConfig;
pub use driver::DatabaseSessionDriver;
pub use middleware::auth_user_id;
pub use middleware::clear_auth_user;
pub use middleware::clear_session;
pub use middleware::generate_csrf_token;
pub use middleware::generate_session_id;
pub use middleware::get_csrf_token;
pub use middleware::invalidate_session;
pub use middleware::is_authenticated;
pub use middleware::regenerate_session_id;
pub use middleware::session;
pub use middleware::session_mut;
pub use middleware::set_auth_user;
pub use middleware::set_session;
pub use middleware::take_session;
pub use middleware::SessionMiddleware;
pub use store::SessionData;
pub use store::SessionStore;

Modules§

config
Session configuration
driver
Session storage drivers
middleware
Session middleware for Kit framework
store
Session storage abstraction