1个不稳定版本

0.3.0-r12020年1月18日

#13 in #会话中间件

MIT/Apache

470KB
10K SLoC

actix web框架的会话 构建状态 codecov 加入https://gitter.im/actix/actix的聊天

文档与社区资源


lib.rs:

用户会话。

Actix提供了一般会话管理解决方案。会话中间件可以提供不同的实现,可以通过通用会话API访问。

默认情况下,只实现了cookie会话后端。可以添加其他后端实现。

一般来说,您需要插入一个 会话 中间件并初始化它,例如一个 CookieSessionBackend。要访问会话数据,必须使用 会话 提取器。会话提取器允许我们获取或设置会话数据。

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

#[requiem_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
}

依赖关系

~29MB
~623K SLoC