pub struct TokenCacheManager { /* private fields */ }Implementations§
Source§impl TokenCacheManager
impl TokenCacheManager
Sourcepub fn new(enabled: bool, ttl_seconds: u64, max_capacity: u64) -> Self
pub fn new(enabled: bool, ttl_seconds: u64, max_capacity: u64) -> Self
Creates a new TokenCacheManager.
§Arguments
enabled- Whether caching is enabledttl_seconds- Time-to-live for cached tokens. Lower values provide better security (revoked tokens expire faster) but increase database load.max_capacity- Maximum number of tokens to cache
pub async fn get(&self, token: &str) -> Option<CachedTokenData>
Sourcepub fn generation(&self) -> u64
pub fn generation(&self) -> u64
Current invalidation generation. Read it before the database lookup
whose result is passed to TokenCacheManager::insert.
Sourcepub async fn insert(
&self,
token: String,
data: CachedTokenData,
generation: u64,
)
pub async fn insert( &self, token: String, data: CachedTokenData, generation: u64, )
Caches data unless the cache was invalidated since generation was
read. The generation is checked again after the insert: an
invalidation racing with the insert removes the fresh entry, so a
revoked token or outdated privileges never outlive an invalidation.
pub fn invalidate_all(&self)
Sourcepub async fn invalidate(&self, token: &str)
pub async fn invalidate(&self, token: &str)
Invalidate a single token from the cache.
pub fn is_enabled(&self) -> bool
Auto Trait Implementations§
impl !Freeze for TokenCacheManager
impl !RefUnwindSafe for TokenCacheManager
impl !UnwindSafe for TokenCacheManager
impl Send for TokenCacheManager
impl Sync for TokenCacheManager
impl Unpin for TokenCacheManager
impl UnsafeUnpin for TokenCacheManager
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
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> ⓘ
Converts
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> ⓘ
Converts
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