pub trait TokenResponse<TT>:
Debug
+ DeserializeOwned
+ Serializewhere
TT: TokenType,{
// Required methods
fn access_token(&self) -> &AccessToken;
fn token_type(&self) -> &TT;
fn expires_in(&self) -> Option<Duration>;
fn refresh_token(&self) -> Option<&RefreshToken>;
fn scopes(&self) -> Option<&Vec<Scope>>;
}
Expand description
Common methods shared by all OAuth2 token implementations.
The methods in this trait are defined in
Section 5.1 of RFC 6749. This trait exists
separately from the StandardTokenResponse
struct to support customization by clients,
such as supporting interoperability with non-standards-complaint OAuth2 providers.
Required Methods§
Sourcefn access_token(&self) -> &AccessToken
fn access_token(&self) -> &AccessToken
REQUIRED. The access token issued by the authorization server.
Sourcefn token_type(&self) -> &TT
fn token_type(&self) -> &TT
REQUIRED. The type of the token issued as described in
Section 7.1.
Value is case insensitive and deserialized to the generic TokenType
parameter.
Sourcefn expires_in(&self) -> Option<Duration>
fn expires_in(&self) -> Option<Duration>
RECOMMENDED. The lifetime in seconds of the access token. For example, the value 3600 denotes that the access token will expire in one hour from the time the response was generated. If omitted, the authorization server SHOULD provide the expiration time via other means or document the default value.
Sourcefn refresh_token(&self) -> Option<&RefreshToken>
fn refresh_token(&self) -> Option<&RefreshToken>
OPTIONAL. The refresh token, which can be used to obtain new access tokens using the same authorization grant as described in Section 6.
Sourcefn scopes(&self) -> Option<&Vec<Scope>>
fn scopes(&self) -> Option<&Vec<Scope>>
OPTIONAL, if identical to the scope requested by the client; otherwise, REQUIRED. The
scope of the access token as described by
Section 3.3. If included in the response,
this space-delimited field is parsed into a Vec
of individual scopes. If omitted from
the response, this field is None
.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.