1 unstable release

0.3.0 Jan 20, 2020

#16 in #session-middleware


Used in actori-redis

MIT/Apache

470KB
10K SLoC

Session for actori web framework Build Status codecov Join the chat at https://gitter.im/actori/actori

Documentation & community resources


lib.rs:

User sessions.

Actori provides a general solution for session management. Session middlewares could provide different implementations which could be accessed via general session api.

By default, only cookie session backend is implemented. Other backend implementations can be added.

In general, you insert a session middleware and initialize it , such as a CookieSessionBackend. To access session data, Session extractor must be used. Session extractor allows us to get or set session data.

use actori_web::{web, App, HttpServer, HttpResponse, Error};
use actori_session::{Session, CookieSession};

fn index(session: Session) -> Result<&'static str, Error> {
    // access session data
    if let Some(count) = session.get::<i32>("counter")? {
        println!("SESSION value: {}", count);
        session.set("counter", count+1)?;
    } else {
        session.set("counter", 1)?;
    }

    Ok("Welcome!")
}

#[actori_rt::main]
async fn main() -> std::io::Result<()> {
    HttpServer::new(
        || App::new().wrap(
              CookieSession::signed(&[0; 32]) // <- create cookie based session middleware
                    .secure(false)
             )
            .service(web::resource("/").to(|| HttpResponse::Ok())))
        .bind("127.0.0.1:59880")?
        .run()
        .await
}

Dependencies

~32MB
~642K SLoC