pub struct AuthorizationCodeRecord {
pub did: String,
pub client_id: String,
pub scope: ScopeSet,
pub redirect_uri: String,
pub code_challenge: String,
pub code_challenge_method: String,
pub client_auth_key: Option<ClientAuthKey>,
pub dpop_jkt: DpopThumbprint,
}Expand description
The fields AuthorizationCodeStore::issue takes — the same shape as
AuthorizationCode, public because a caller assembling one from a
confirmed consent::PendingConsent needs to name every field.
Fields§
§did: StringThe account this code grants access to.
client_id: StringThe client this code was issued to.
scope: ScopeSetWhat the decision record granted, which is what the agent approved; see this module’s doc.
redirect_uri: StringWhere this code must be redirected back to; checked again at exchange.
code_challenge: StringThe PKCE challenge code_verifier must hash to at exchange.
code_challenge_method: StringThe PKCE method the challenge was computed with; always S256.
client_auth_key: Option<ClientAuthKey>The key a confidential client authenticated with at PAR, which the
exchange must be signed with too. None for a public client.
dpop_jkt: DpopThumbprintThe thumbprint of the DPoP key the sign-in’s push was signed with. The exchange’s proof must be signed with the same key (RFC 9449 §10).
Trait Implementations§
Source§impl From<PendingConsent> for AuthorizationCodeRecord
impl From<PendingConsent> for AuthorizationCodeRecord
Source§fn from(pending: PendingConsent) -> Self
fn from(pending: PendingConsent) -> Self
Auto Trait Implementations§
impl Freeze for AuthorizationCodeRecord
impl RefUnwindSafe for AuthorizationCodeRecord
impl Send for AuthorizationCodeRecord
impl Sync for AuthorizationCodeRecord
impl Unpin for AuthorizationCodeRecord
impl UnsafeUnpin for AuthorizationCodeRecord
impl UnwindSafe for AuthorizationCodeRecord
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
§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