1
0
mirror of https://github.com/actix/actix-extras.git synced 2024-11-28 01:32:57 +01:00
Go to file
2018-01-05 14:52:07 -08:00
examples complete redis session backend 2017-12-29 01:10:27 -08:00
src update actix to 0.4 2018-01-05 14:52:07 -08:00
.gitignore initial import 2017-12-28 21:14:04 -08:00
Cargo.toml update actix to 0.4 2018-01-05 14:52:07 -08:00
LICENSE-APACHE initial import 2017-12-28 21:14:04 -08:00
LICENSE-MIT initial import 2017-12-28 21:14:04 -08:00
README.md update readme 2017-12-29 01:12:24 -08:00

Actix redis

Redis session backend

Use redis as session storage.

You need to pass an address of the redis server and random value to the constructor of RedisSessionBackend. This is private key for cookie session, When this value is changed, all session data is lost.

Note that whatever you write into your session is visible by the user (but not modifiable).

Constructor panics if key length is less than 32 bytes.

extern crate actix_web;
extern crate actix_redis;

use actix_web::*;
use actix_web::middleware::SessionStorage;
use actix_redis::RedisSessionBackend;

fn main() {
    ::std::env::set_var("RUST_LOG", "actix_web=info");
    let _ = env_logger::init();
    let sys = actix::System::new("basic-example");

    HttpServer::new(
        || Application::new()
            // enable logger
            .middleware(middleware::Logger::default())
            // cookie session middleware
            .middleware(SessionStorage::new(
                RedisSessionBackend::new("127.0.0.1:6379", &[0; 32])
                    .expect("Can not connect to redis server")
            ))
            // register simple route, handle all methods
            .resource("/", |r| r.f(index)))
        .bind("0.0.0.0:8080").unwrap()
        .start();

    let _ = sys.run();
}