[][src]Crate actix_session

User sessions.

Actix 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 actix_web::{web, App, HttpServer, HttpResponse, Error};
use actix_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!")
}

#[actix_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")?
        .start()
        .await
}

Structs

CookieSession

Use cookies for session storage.

Session

The high-level interface you use to modify session data.

Enums

SessionStatus

Traits

UserSession

Helper trait that allows to get session