pub struct AuthorizeUrlRequest {
pub state: String,
pub code_challenge: String,
pub code_challenge_method: String,
pub force_consent: bool,
}Expand description
Parameters for building an upstream provider’s /authorize-equivalent
redirect URL. AuthorizeUrlRequest was originally Google-specific
(google::AuthorizeUrlRequest); it moved here unchanged when the
OAuthProvider trait was introduced, since every provider needs the same
shape.
Fields§
§state: String§code_challenge: String§code_challenge_method: String§force_consent: boolForce the upstream’s full consent screen even if the user already granted these scopes. Needed the first time (to guarantee a refresh token comes back for providers that support one), but forcing it on every retry adds a slow, interactive round trip that impatient MCP clients can time out on before the human finishes clicking through it.
This field is honestly OIDC/Google-shaped, not provider-neutral, and
that’s surfaced here rather than hidden: Google’s prompt=consent is
documented, verified behavior for guaranteeing a refresh token on
re-authorization. Authelia’s need for the same treatment is plausible
(same prompt parameter, same OIDC family) but unverified against a
real Authelia instance by this plan — treat it as inherited-but-not-
proven. GitHub has no documented prompt parameter and no consent-
gated refresh-token semantics at all (OAuth Apps never issue refresh
tokens, full stop); GitHubProvider::authorize_url still appends
prompt=consent when this is true purely because GitHub silently
ignores unrecognized query params — it’s dead weight, not a bug, but
don’t read “GitHub honors force_consent” into that.
Trait Implementations§
Source§impl Clone for AuthorizeUrlRequest
impl Clone for AuthorizeUrlRequest
Source§fn clone(&self) -> AuthorizeUrlRequest
fn clone(&self) -> AuthorizeUrlRequest
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for AuthorizeUrlRequest
impl Debug for AuthorizeUrlRequest
Source§impl PartialEq for AuthorizeUrlRequest
impl PartialEq for AuthorizeUrlRequest
Source§fn eq(&self, other: &AuthorizeUrlRequest) -> bool
fn eq(&self, other: &AuthorizeUrlRequest) -> bool
self and other values to be equal, and is used by ==.impl Eq for AuthorizeUrlRequest
impl StructuralPartialEq for AuthorizeUrlRequest
Auto Trait Implementations§
impl Freeze for AuthorizeUrlRequest
impl RefUnwindSafe for AuthorizeUrlRequest
impl Send for AuthorizeUrlRequest
impl Sync for AuthorizeUrlRequest
impl Unpin for AuthorizeUrlRequest
impl UnsafeUnpin for AuthorizeUrlRequest
impl UnwindSafe for AuthorizeUrlRequest
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.