Struct actix_web::middleware::session::CookieSessionBackend
source · pub struct CookieSessionBackend(_);Expand description
Use cookies for session storage.
CookieSessionBackend 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 CookieSessionBackend 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.
Example
use actix_web::middleware::session::CookieSessionBackend;
let backend: CookieSessionBackend = CookieSessionBackend::signed(&[0; 32])
.domain("www.rust-lang.org")
.name("actix_session")
.path("/")
.secure(true);Implementations
sourceimpl CookieSessionBackend
impl CookieSessionBackend
sourcepub fn signed(key: &[u8]) -> CookieSessionBackend
pub fn signed(key: &[u8]) -> CookieSessionBackend
Construct new signed CookieSessionBackend instance.
Panics if key length is less than 32 bytes.
sourcepub fn private(key: &[u8]) -> CookieSessionBackend
pub fn private(key: &[u8]) -> CookieSessionBackend
Construct new private CookieSessionBackend instance.
Panics if key length is less than 32 bytes.
sourcepub fn path<S: Into<String>>(self, value: S) -> CookieSessionBackend
pub fn path<S: Into<String>>(self, value: S) -> CookieSessionBackend
Sets the path field in the session cookie being built.
sourcepub fn name<S: Into<String>>(self, value: S) -> CookieSessionBackend
pub fn name<S: Into<String>>(self, value: S) -> CookieSessionBackend
Sets the name field in the session cookie being built.
sourcepub fn domain<S: Into<String>>(self, value: S) -> CookieSessionBackend
pub fn domain<S: Into<String>>(self, value: S) -> CookieSessionBackend
Sets the domain field in the session cookie being built.
sourcepub fn secure(self, value: bool) -> CookieSessionBackend
pub fn secure(self, value: bool) -> CookieSessionBackend
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
sourcepub fn http_only(self, value: bool) -> CookieSessionBackend
pub fn http_only(self, value: bool) -> CookieSessionBackend
Sets the http_only field in the session cookie being built.
sourcepub fn same_site(self, value: SameSite) -> CookieSessionBackend
pub fn same_site(self, value: SameSite) -> CookieSessionBackend
Sets the same_site field in the session cookie being built.
sourcepub fn max_age(self, value: Duration) -> CookieSessionBackend
pub fn max_age(self, value: Duration) -> CookieSessionBackend
Sets the max-age field in the session cookie being built.