Trait oxide_auth_async::endpoint::Endpoint
source · pub trait Endpoint<Request>where
Request: WebRequest,{
type Error;
// Required methods
fn registrar(&self) -> Option<&(dyn Registrar + Sync)>;
fn authorizer_mut(&mut self) -> Option<&mut (dyn Authorizer + Send)>;
fn issuer_mut(&mut self) -> Option<&mut (dyn Issuer + Send)>;
fn owner_solicitor(
&mut self
) -> Option<&mut (dyn OwnerSolicitor<Request> + Send)>;
fn scopes(&mut self) -> Option<&mut dyn Scopes<Request>>;
fn response(
&mut self,
request: &mut Request,
kind: Template<'_>
) -> Result<Request::Response, Self::Error>;
fn error(&mut self, err: OAuthError) -> Self::Error;
fn web_error(&mut self, err: Request::Error) -> Self::Error;
// Provided method
fn extension(&mut self) -> Option<&mut (dyn Extension + Send)> { ... }
}
Required Associated Types§
Required Methods§
sourcefn registrar(&self) -> Option<&(dyn Registrar + Sync)>
fn registrar(&self) -> Option<&(dyn Registrar + Sync)>
A registrar if this endpoint can access one.
Returning None
will implicate failing any flow that requires a registrar but does not
have any effect on flows that do not require one.
An authorizer if this endpoint can access one.
Returning None
will implicate failing any flow that requires an authorizer but does not
have any effect on flows that do not require one.
sourcefn issuer_mut(&mut self) -> Option<&mut (dyn Issuer + Send)>
fn issuer_mut(&mut self) -> Option<&mut (dyn Issuer + Send)>
An issuer if this endpoint can access one.
Returning None
will implicate failing any flow that requires an issuer but does not have
any effect on flows that do not require one.
sourcefn owner_solicitor(
&mut self
) -> Option<&mut (dyn OwnerSolicitor<Request> + Send)>
fn owner_solicitor( &mut self ) -> Option<&mut (dyn OwnerSolicitor<Request> + Send)>
Return the system that checks owner consent.
Returning None
will implicated failing the authorization code flow but does have any
effect on other flows.
sourcefn scopes(&mut self) -> Option<&mut dyn Scopes<Request>>
fn scopes(&mut self) -> Option<&mut dyn Scopes<Request>>
Determine the required scopes for a request.
The client must fulfill any one scope, so returning an empty slice will always deny the request.
sourcefn response(
&mut self,
request: &mut Request,
kind: Template<'_>
) -> Result<Request::Response, Self::Error>
fn response( &mut self, request: &mut Request, kind: Template<'_> ) -> Result<Request::Response, Self::Error>
Generate a prototype response.
The endpoint can rely on this being called at most once for each flow, if it wants to preallocate the response or return a handle on an existing prototype.
sourcefn error(&mut self, err: OAuthError) -> Self::Error
fn error(&mut self, err: OAuthError) -> Self::Error
Wrap an error.