1个不稳定版本

0.0.1 2020年1月19日

#17 in #session-middleware

MIT 协议

600KB
14K SLoC

用户会话。

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

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

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

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

#[scrappy_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
~602K SLoC