pub struct SessionService { /* private fields */ }Expand description
Issues and validates Chisel session tokens over tokenkit’s JWT service
with rotation-capable secrets.
Implementations§
Source§impl SessionService
impl SessionService
Sourcepub fn new(
signing_secret: impl Into<String>,
issuer: impl Into<String>,
audience: impl Into<String>,
) -> Result<Self>
pub fn new( signing_secret: impl Into<String>, issuer: impl Into<String>, audience: impl Into<String>, ) -> Result<Self>
Creates a service.
§Errors
Error::Config when the signing secret is empty or the issuer or
audience is empty — a service started unconfigured must fail loudly
now, not at the first login.
Sourcepub fn issue(&self, user: &UserId, role: Role) -> Result<SessionTokens>
pub fn issue(&self, user: &UserId, role: Role) -> Result<SessionTokens>
Issues an access + refresh pair for a user with the given role.
§Errors
Propagates encoding failures from the kit.
Sourcepub fn validate(&self, token: &str) -> Result<ChiselClaims>
pub fn validate(&self, token: &str) -> Result<ChiselClaims>
Validates an access token into its claims.
§Errors
Error::Token when the kit rejects the token (signature, expiry,
audience); propagation otherwise.
Sourcepub fn refresh(&self, refresh_token: &str) -> Result<SessionTokens>
pub fn refresh(&self, refresh_token: &str) -> Result<SessionTokens>
Sourcepub fn refresh_from_claims(
&self,
claims: &ChiselClaims,
) -> Result<SessionTokens>
pub fn refresh_from_claims( &self, claims: &ChiselClaims, ) -> Result<SessionTokens>
Trait Implementations§
Source§impl Clone for SessionService
impl Clone for SessionService
Auto Trait Implementations§
impl Freeze for SessionService
impl RefUnwindSafe for SessionService
impl Send for SessionService
impl Sync for SessionService
impl Unpin for SessionService
impl UnsafeUnpin for SessionService
impl UnwindSafe for SessionService
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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