1个不稳定版本

0.3.0 2020年1月20日

#16 in #session-middleware


actori-redis 中使用

MIT/Apache

470KB
10K SLoC

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

文档和社区资源


lib.rs:

用户会话。

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

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

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

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
}

依赖项

~28MB
~606K SLoC