pub struct SessionMiddlewareBuilder<Store: SessionStore> { /* private fields */ }Expand description
A fluent, customized SessionMiddleware builder.
Implementations§
Source§impl<Store: SessionStore> SessionMiddlewareBuilder<Store>
impl<Store: SessionStore> SessionMiddlewareBuilder<Store>
Set the name of the cookie used to store the session ID.
Defaults to id.
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.
Sourcepub fn session_lifecycle<S: Into<SessionLifecycle>>(
self,
session_lifecycle: S,
) -> Self
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();Set the SameSite attribute for the cookie used to store the session ID.
By default, the attribute is set to Lax.
Set the Path attribute for the cookie used to store the session ID.
By default, the attribute is set to /.
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.
Choose how the session cookie content should be secured.
CookieContentSecurity::Privateselects encrypted cookie content.CookieContentSecurity::Signedselects 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.
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.
Sourcepub fn build(self) -> SessionMiddleware<Store>
pub fn build(self) -> SessionMiddleware<Store>
Finalise the builder and return a SessionMiddleware instance.
Auto Trait Implementations§
impl<Store> Freeze for SessionMiddlewareBuilder<Store>where
Store: Freeze,
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more