Struct inth_oauth2::client::Client
[−]
[src]
pub struct Client<P: Provider> { pub client_id: String, pub client_secret: String, pub redirect_uri: Option<String>, // some fields omitted }
OAuth 2.0 client.
Fields
client_id | Client ID. |
client_secret | Client secret. |
redirect_uri | Redirect URI. |
Methods
impl<P: Provider> Client<P>
fn new(client_id: String, client_secret: String, redirect_uri: Option<String>) -> Self
Creates a client.
Examples
use inth_oauth2::Client; use inth_oauth2::provider::google::Installed; let client = Client::<Installed>::new( String::from("CLIENT_ID"), String::from("CLIENT_SECRET"), Some(String::from("urn:ietf:wg:oauth:2.0:oob")) );
fn auth_uri(&self, scope: Option<&str>, state: Option<&str>) -> Result<Url, ClientError>
Returns an authorization endpoint URI to direct the user to.
Examples
use inth_oauth2::Client; use inth_oauth2::provider::google::Installed; let client = Client::<Installed>::new( String::from("CLIENT_ID"), String::from("CLIENT_SECRET"), Some(String::from("urn:ietf:wg:oauth:2.0:oob")) ); let auth_uri = client.auth_uri( Some("https://www.googleapis.com/auth/userinfo.email"), None );
fn request_token(&self, http_client: &Client, code: &str) -> Result<P::Token, ClientError>
Requests an access token using an authorization code.
impl<P: Provider> Client<P> where P::Token: Token<Refresh>
fn refresh_token(&self, http_client: &Client, token: P::Token, scope: Option<&str>) -> Result<P::Token, ClientError>
Refreshes an access token.
See RFC 6749, section 6.
fn ensure_token(&self, http_client: &Client, token: P::Token) -> Result<P::Token, ClientError>
Ensures an access token is valid by refreshing it if necessary.