pub enum BrowserTokenError {
Decode(String),
WrongType {
expected: TokenType,
got: String,
},
Expired,
NotYetValid,
BadRole(String),
Revoked,
}Expand description
Reasons a token is refused. Kept distinct so the WS handshake and the refresh endpoint can log why without leaking detail to the client.
Variants§
Decode(String)
Signature, issuer, audience, or structural decode failure. The string is for server-side logs only.
WrongType
A refresh token was presented where an access token was required, or vice-versa. A refresh token must never authenticate a session directly — it only mints access tokens.
Expired
exp is at or before now.
NotYetValid
nbf is in the future.
BadRole(String)
The embedded role claim is not a known Role.
Revoked
A structurally valid refresh token whose jti is no longer live:
the browser logged out, the token was rotated, or every token for
the principal was revoked. Distinct from Self::Expired so logs
tell “credential withdrawn” apart from “credential aged out”.
Trait Implementations§
Source§impl Clone for BrowserTokenError
impl Clone for BrowserTokenError
Source§impl Debug for BrowserTokenError
impl Debug for BrowserTokenError
Source§impl Display for BrowserTokenError
impl Display for BrowserTokenError
impl Eq for BrowserTokenError
Source§impl Error for BrowserTokenError
impl Error for BrowserTokenError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Source§impl PartialEq for BrowserTokenError
impl PartialEq for BrowserTokenError
impl StructuralPartialEq for BrowserTokenError
Auto Trait Implementations§
impl Freeze for BrowserTokenError
impl RefUnwindSafe for BrowserTokenError
impl Send for BrowserTokenError
impl Sync for BrowserTokenError
impl Unpin for BrowserTokenError
impl UnsafeUnpin for BrowserTokenError
impl UnwindSafe for BrowserTokenError
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request