pub struct AuthenticatedUser {
pub id: String,
pub role: String,
}Expand description
Authenticated user extracted from a valid JWT Bearer token or API key.
Use as an Actix-web extractor in handler signatures:
use actix_web::Responder;
use shaperail_runtime::auth::AuthenticatedUser;
async fn handler(user: AuthenticatedUser) -> impl Responder {
format!("Hello, user {}", user.id)
}Returns 401 if no valid JWT or API key is present.
Fields§
§id: StringThe user’s unique ID (from JWT sub claim or API key mapping).
role: StringThe user’s role (from JWT role claim or API key mapping).
Trait Implementations§
Source§impl Clone for AuthenticatedUser
impl Clone for AuthenticatedUser
Source§fn clone(&self) -> AuthenticatedUser
fn clone(&self) -> AuthenticatedUser
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for AuthenticatedUser
impl Debug for AuthenticatedUser
Source§impl FromRequest for AuthenticatedUser
impl FromRequest for AuthenticatedUser
Source§type Error = ShaperailError
type Error = ShaperailError
The associated error which can be returned.
Source§type Future = Ready<Result<AuthenticatedUser, <AuthenticatedUser as FromRequest>::Error>>
type Future = Ready<Result<AuthenticatedUser, <AuthenticatedUser as FromRequest>::Error>>
Future that resolves to a
Self. Read moreSource§fn from_request(req: &HttpRequest, _payload: &mut Payload) -> Self::Future
fn from_request(req: &HttpRequest, _payload: &mut Payload) -> Self::Future
Create a
Self from request parts asynchronously.Auto Trait Implementations§
impl Freeze for AuthenticatedUser
impl RefUnwindSafe for AuthenticatedUser
impl Send for AuthenticatedUser
impl Sync for AuthenticatedUser
impl Unpin for AuthenticatedUser
impl UnsafeUnpin for AuthenticatedUser
impl UnwindSafe for AuthenticatedUser
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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 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>
Wrap the input message
T in a tonic::Request