# Struct actix_web::middleware::session::CookieSessionBackend[−][src]

    pub struct CookieSessionBackend(_);

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);

## Methods

###

`impl CookieSessionBackend`

[src]

####

`pub fn signed(key: &[u8]) -> CookieSessionBackend`

[src]

Construct new signed `CookieSessionBackend` instance.

Panics if key length is less than 32 bytes.

####

`pub fn private(key: &[u8]) -> CookieSessionBackend`

[src]

Construct new private `CookieSessionBackend` instance.

Panics if key length is less than 32 bytes.

####

`pub fn path<S: Into<String>>(self, value: S) -> CookieSessionBackend`

[src]

Sets the `path` field in the session cookie being built.

####

`pub fn name<S: Into<String>>(self, value: S) -> CookieSessionBackend`

[src]

Sets the `name` field in the session cookie being built.

####

`pub fn domain<S: Into<String>>(self, value: S) -> CookieSessionBackend`

[src]

Sets the `domain` field in the session cookie being built.

####

`pub fn secure(self, value: bool) -> CookieSessionBackend`

[src]

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`

####

`pub fn http_only(self, value: bool) -> CookieSessionBackend`

[src]

Sets the `http_only` field in the session cookie being built.

####

`pub fn same_site(self, value: SameSite) -> CookieSessionBackend`

[src]

Sets the `same_site` field in the session cookie being built.

####

`pub fn max_age(self, value: Duration) -> CookieSessionBackend`

[src]

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

## Auto Trait Implementations

###

`impl !Send for CookieSessionBackend`

###

`impl !Sync for CookieSessionBackend`

# Help

## Keyboard Shortcuts

`?`
  Show this help dialog
`S`
  Focus the search field
`↑`
  Move up in search results
`↓`
  Move down in search results
`↹`
  Switch tab
`⏎`
  Go to active search result
`+`
  Expand all sections
`-`
  Collapse all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize` or `* -> vec`)

Search multiple things at once by splitting your query with comma (e.g. `str,u8` or `String,struct:Vec,test`)