pub struct AuthContext<DB: DatabaseAdapter> {
pub config: Arc<AuthConfig>,
pub database: Arc<DB>,
pub email_provider: Option<Arc<dyn EmailProvider>>,
pub metadata: HashMap<String, Value>,
}Expand description
Context passed to plugin methods
Fields§
§config: Arc<AuthConfig>§database: Arc<DB>§email_provider: Option<Arc<dyn EmailProvider>>§metadata: HashMap<String, Value>Implementations§
Source§impl<DB: DatabaseAdapter> AuthContext<DB>
impl<DB: DatabaseAdapter> AuthContext<DB>
pub fn new(config: Arc<AuthConfig>, database: Arc<DB>) -> Self
pub fn set_metadata(&mut self, key: impl Into<String>, value: Value)
pub fn get_metadata(&self, key: &str) -> Option<&Value>
Sourcepub fn email_provider(&self) -> AuthResult<&dyn EmailProvider>
pub fn email_provider(&self) -> AuthResult<&dyn EmailProvider>
Get the email provider, returning an error if none is configured.
Sourcepub async fn require_session(
&self,
req: &AuthRequest,
) -> AuthResult<(DB::User, DB::Session)>
pub async fn require_session( &self, req: &AuthRequest, ) -> AuthResult<(DB::User, DB::Session)>
Extract a session token from the request, validate the session, and
return the authenticated (User, Session) pair.
This centralises the pattern previously duplicated across many plugins
(get_authenticated_user, require_session, etc.).
Auto Trait Implementations§
impl<DB> Freeze for AuthContext<DB>
impl<DB> !RefUnwindSafe for AuthContext<DB>
impl<DB> Send for AuthContext<DB>
impl<DB> Sync for AuthContext<DB>
impl<DB> Unpin for AuthContext<DB>
impl<DB> UnsafeUnpin for AuthContext<DB>
impl<DB> !UnwindSafe for AuthContext<DB>
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
Mutably borrows from an owned value. Read more