pub struct PkceConfig {
pub enabled: bool,
pub code_challenge_method: CodeChallengeMethod,
pub state_ttl_secs: u64,
pub redis_url: Option<String>,
}Expand description
PKCE (Proof Key for Code Exchange) configuration.
Requires state_encryption to be enabled for secure state storage.
Fields§
§enabled: boolEnable PKCE for OAuth Authorization Code flows
code_challenge_method: CodeChallengeMethodCode challenge method (S256 recommended)
state_ttl_secs: u64How long the PKCE state is valid before the auth flow expires (seconds)
redis_url: Option<String>Redis URL for distributed PKCE state storage across multiple replicas.
Required for multi-replica deployments (Kubernetes, ECS, fly.io with
multiple instances). Without Redis, /auth/start and /auth/callback
must hit the same replica.
Requires the redis-pkce Cargo feature to be compiled in.
Example: "redis://localhost:6379" or "${REDIS_URL}".
Trait Implementations§
Source§impl Clone for PkceConfig
impl Clone for PkceConfig
Source§fn clone(&self) -> PkceConfig
fn clone(&self) -> PkceConfig
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 PkceConfig
impl Debug for PkceConfig
Source§impl Default for PkceConfig
impl Default for PkceConfig
Source§impl<'de> Deserialize<'de> for PkceConfigwhere
PkceConfig: Default,
impl<'de> Deserialize<'de> for PkceConfigwhere
PkceConfig: Default,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for PkceConfig
impl RefUnwindSafe for PkceConfig
impl Send for PkceConfig
impl Sync for PkceConfig
impl Unpin for PkceConfig
impl UnsafeUnpin for PkceConfig
impl UnwindSafe for PkceConfig
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> 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 more