# Struct actix_session::config::SessionMiddlewareBuilder

source ·

    pub struct SessionMiddlewareBuilder<Store: SessionStore> { /* private fields */ }

Expand description

A fluent, customized `SessionMiddleware` builder.

## Implementations§

source§

### impl<Store: SessionStore> SessionMiddlewareBuilder<Store>

source

#### pub fn cookie_name(self, name: String) -> Self

Set the name of the cookie used to store the session ID.

Defaults to `id`.

source

#### pub fn cookie_secure(self, secure: bool) -> Self

Set the `Secure` attribute for the cookie used to store the session ID.

If the cookie is set as secure, it will only be transmitted when the connection is secure (using `https`).

Default is `true`.

source

#### pub fn session_lifecycle<S: Into<SessionLifecycle>>( self, session_lifecycle: S ) -> Self

Determines what type of session cookie should be used and how its lifecycle should be managed. Check out `SessionLifecycle`’s documentation for more details on the available options.

Default is `SessionLifecycle::BrowserSession`.

##### Examples

    use actix_web::cookie::{Key, time::Duration};
    use actix_session::{SessionMiddleware, config::PersistentSession};
    use actix_session::storage::CookieSessionStore;

    const SECS_IN_WEEK: i64 = 60 * 60 * 24 * 7;

    // creates a session middleware with a time-to-live (expiry) of 1 week
    SessionMiddleware::builder(CookieSessionStore::default(), Key::from(&[0; 64]))
        .session_lifecycle(
            PersistentSession::default().session_ttl(Duration::seconds(SECS_IN_WEEK))
        )
        .build();

source

#### pub fn cookie_same_site(self, same_site: SameSite) -> Self

Set the `SameSite` attribute for the cookie used to store the session ID.

By default, the attribute is set to `Lax`.

source

#### pub fn cookie_path(self, path: String) -> Self

Set the `Path` attribute for the cookie used to store the session ID.

By default, the attribute is set to `/`.

source

#### pub fn cookie_domain(self, domain: Option<String>) -> Self

Set the `Domain` attribute for the cookie used to store the session ID.

Use `None` to leave the attribute unspecified. If unspecified, the attribute defaults to the same host that set the cookie, excluding subdomains.

By default, the attribute is left unspecified.

source

#### pub fn cookie_content_security( self, content_security: CookieContentSecurity ) -> Self

Choose how the session cookie content should be secured.

- `CookieContentSecurity::Private` selects encrypted cookie content.
- `CookieContentSecurity::Signed` selects signed cookie content.

##### Default

By default, the cookie content is encrypted. Encrypted was chosen instead of signed as default because it reduces the chances of sensitive information being exposed in the session key by accident, regardless of `SessionStore` implementation you chose to use.

For example, if you are using cookie-based storage, you definitely want the cookie content to be encrypted—the whole session state is embedded in the cookie! If you are using Redis-based storage, signed is more than enough - the cookie content is just a unique tamper-proof session key.

source

#### pub fn cookie_http_only(self, http_only: bool) -> Self

Set the `HttpOnly` attribute for the cookie used to store the session ID.

If the cookie is set as `HttpOnly`, it will not be visible to any JavaScript snippets running in the browser.

Default is `true`.

source

#### pub fn build(self) -> SessionMiddleware<Store>

Finalise the builder and return a `SessionMiddleware` instance.

## Auto Trait Implementations§

§

### impl<Store> RefUnwindSafe for SessionMiddlewareBuilder<Store>where Store: RefUnwindSafe,

§

### impl<Store> Send for SessionMiddlewareBuilder<Store>where Store: Send,

§

### impl<Store> Sync for SessionMiddlewareBuilder<Store>where Store: Sync,

§

### impl<Store> Unpin for SessionMiddlewareBuilder<Store>where Store: Unpin,

§

### impl<Store> UnwindSafe for SessionMiddlewareBuilder<Store>where Store: UnwindSafe,

## Blanket Implementations§

source§

### impl<T> Any for Twhere T: 'static + ?Sized,

source§

#### fn type_id(&self) -> TypeId

Gets the `TypeId` of `self`. Read more
source§

### impl<T> Borrow<T> for Twhere T: ?Sized,

source§

#### fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

### impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

#### fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

### impl<T> From<T> for T

source§

#### fn from(t: T) -> T

Returns the argument unchanged.

§

### impl<T> Instrument for T

§

#### fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [`Span`], returning an `Instrumented` wrapper. Read more
§

#### fn in_current_span(self) -> Instrumented<Self>

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

### impl<T, U> Into<U> for Twhere U: From<T>,

source§

#### fn into(self) -> U

Calls `U::from(self)`.

That is, this conversion is whatever the implementation of `From<T> for U` chooses to do.

source§

### impl<T> Same for T

§

#### type Output = T

Should always be `Self`
source§

### impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

#### type Error = Infallible

The type returned in the event of a conversion error.
source§

#### fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

### impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

#### type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

#### fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

### impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

#### fn vzip(self) -> V

§

### impl<T> WithSubscriber for T

§

#### fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided `Subscriber` to this type, returning a [`WithDispatch`] wrapper. Read more
§

#### fn with_current_subscriber(self) -> WithDispatch<Self>

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