pub struct CookieSession(_);
Expand description

Use cookies for session storage.

CookieSession creates sessions which are limited to storing fewer than 4000 bytes of data (as the payload must fit into a single cookie). An Internal Server Error is generated if the session contains more than 4000 bytes.

A cookie may have a security policy of signed or private. Each has a respective CookieSession constructor.

A signed cookie is stored on the client as plaintext alongside a signature such that the cookie may be viewed but not modified by the client.

A private cookie is stored on the client as encrypted text such that it may neither be viewed nor modified by the client.

The constructors take a key as an argument. This is the private key for cookie session - when this value is changed, all session data is lost. The constructors will panic if the key is less than 32 bytes in length.

The backend relies on cookie crate to create and read cookies. By default all cookies are percent encoded, but certain symbols may cause troubles when reading cookie, if they are not properly percent encoded.

Examples

use actix_session::CookieSession;
use actix_web::{web, App, HttpResponse, HttpServer};

let app = App::new().wrap(
    CookieSession::signed(&[0; 32])
        .domain("www.rust-lang.org")
        .name("actix_session")
        .path("/")
        .secure(true))
    .service(web::resource("/").to(|| HttpResponse::Ok()));

Implementations

Construct new signed CookieSession instance.

Panics if key length is less than 32 bytes.

Construct new private CookieSession instance.

Panics if key length is less than 32 bytes.

Sets the path field in the session cookie being built.

Sets the name field in the session cookie being built.

Sets the domain field in the session cookie being built.

When true, prevents adding session cookies to responses until the session contains data. Default is false.

Useful when trying to comply with laws that require consent for setting cookies.

Sets the secure field in the session cookie being built.

If the secure field is set, a cookie will only be transmitted when the connection is secure - i.e. https

Sets the http_only field in the session cookie being built.

Sets the same_site field in the session cookie being built.

Sets the max-age field in the session cookie being built.

Sets the max-age field in the session cookie being built.

Sets the expires field in the session cookie being built.

Sets the expires field in the session cookie being built.

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Responses produced by the service.

Errors produced by the service.

Errors produced while building a transform service.

The TransformService value created by this factory

The future response value.

Creates and returns a new Transform component, asynchronously

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Performs the conversion.

Should always be Self

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more