pub struct TokenRequest {
pub grant_type: String,
pub code: String,
pub redirect_uri: String,
pub client_id: String,
pub client_secret: Option<String>,
pub code_verifier: Option<String>,
}Expand description
OAuth2 令牌交换请求
Fields§
§grant_type: String§code: String§redirect_uri: String§client_id: String§client_secret: Option<String>客户端密钥(v4.8.0 修复 M-7:提供时强制校验)
修复前 exchange_code 从不校验 client_secret——攻击者只需窃取
授权码 + 已知 client_id 即可兑换令牌(RFC 6749 §4.1.3 要求验证
客户端身份)。生产环境必须通过 TokenRequest::with_client_secret
携带密钥。
code_verifier: Option<String>PKCE code_verifier(RFC 7636,v4.8.0 修复 M-7)
签发时携带 code_challenge 的授权码,交换时必须提供匹配的 verifier,否则拒绝兑换。
Implementations§
Source§impl TokenRequest
impl TokenRequest
pub fn new( code: impl Into<String>, redirect_uri: impl Into<String>, client_id: impl Into<String>, ) -> Self
Sourcepub fn with_client_secret(self, secret: impl Into<String>) -> Self
pub fn with_client_secret(self, secret: impl Into<String>) -> Self
附加客户端密钥(v4.8.0 修复 M-7:交换时强制校验)
Sourcepub fn with_code_verifier(self, verifier: impl Into<String>) -> Self
pub fn with_code_verifier(self, verifier: impl Into<String>) -> Self
附加 PKCE code_verifier(v4.8.0 修复 M-7)
Trait Implementations§
Source§impl Clone for TokenRequest
impl Clone for TokenRequest
Source§fn clone(&self) -> TokenRequest
fn clone(&self) -> TokenRequest
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for TokenRequest
impl RefUnwindSafe for TokenRequest
impl Send for TokenRequest
impl Sync for TokenRequest
impl Unpin for TokenRequest
impl UnsafeUnpin for TokenRequest
impl UnwindSafe for TokenRequest
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