pub struct PushedRequest {Show 13 fields
pub client_id: String,
pub client_key: ClientKey,
pub client_metadata: ClientMetadataDocument,
pub redirect_uri: String,
pub scope: ScopeSet,
pub state: Option<String>,
pub response_mode: ResponseMode,
pub code_challenge: String,
pub code_challenge_method: String,
pub login_hint: Option<String>,
pub did: String,
pub dpop_jkt: DpopThumbprint,
pub expires_at: OffsetDateTime,
}Expand description
One pushed authorization request, as pushed.
Fields§
§client_id: StringThe client that pushed it, exactly as presented — authorize and
token both re-check this against what they are given, rather than
trusting a request_uri to imply it.
client_key: ClientKeyThe document client_id resolved to at push time, and its content
key. Carried through rather than re-fetched, so a document that
changes between PAR and authorize cannot smuggle a different
redirect URI or capability into a request that was already admitted.
client_metadata: ClientMetadataDocumentThe resolved document itself, carried through for the same reason.
redirect_uri: StringWhere an authorization code may be delivered; checked against
client_metadata.redirect_uris at push time and again at token.
scope: ScopeSetThe scope requested, before any ceiling narrows it, with each
include: replaced by what its permission set grants.
state: Option<String>The client’s own opaque state, echoed back unexamined.
response_mode: ResponseModeWhere the authorization response carries its parameters.
code_challenge: StringPKCE, mandatory for a public client and the norm for atproto OAuth.
code_challenge_method: StringThe PKCE method the challenge was computed with; only S256 is
accepted.
login_hint: Option<String>The account this authorization is for. atproto’s own extension:
login_hint names the at-identifier the client wants to sign in as.
did: StringThe account login_hint resolved to, looked up here rather than at
authorize: the decision record this push mints names an account.
A login_hint naming nobody never reaches this struct at all — see
push_authorization_request’s own doc for what it gets instead.
dpop_jkt: DpopThumbprintThe RFC 7638 thumbprint of the key the push’s DPoP proof was signed
with: the request’s dpop_jkt (RFC 9449 §10.1). The code it leads to
is exchanged only under the same key.
expires_at: OffsetDateTimeWhen this pushed request must be redeemed by, per REQUEST_URI_TTL.
Trait Implementations§
Source§impl Clone for PushedRequest
impl Clone for PushedRequest
Source§fn clone(&self) -> PushedRequest
fn clone(&self) -> PushedRequest
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for PushedRequest
impl RefUnwindSafe for PushedRequest
impl Send for PushedRequest
impl Sync for PushedRequest
impl Unpin for PushedRequest
impl UnsafeUnpin for PushedRequest
impl UnwindSafe for PushedRequest
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§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,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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 more