Rename Google provider to google::Installed

This commit is contained in:
Curtis McEnroe 2016-02-21 17:16:54 -05:00
parent 26273b90f3
commit 93ac962b32
5 changed files with 42 additions and 32 deletions

View File

@ -3,10 +3,10 @@ extern crate inth_oauth2;
use std::io;
use inth_oauth2::Client;
use inth_oauth2::provider::Google;
use inth_oauth2::provider::google::Installed;
fn main() {
let client = Client::<Google>::new(
let client = Client::<Installed>::new(
String::from("143225766783-ip2d9qv6sdr37276t77luk6f7bhd6bj5.apps.googleusercontent.com"),
String::from("3kZ5WomzHFlN2f_XbhkyPd3o"),
Some(String::from("urn:ietf:wg:oauth:2.0:oob"))

View File

@ -38,9 +38,9 @@ impl<P: Provider> Client<P> {
///
/// ```
/// use inth_oauth2::Client;
/// use inth_oauth2::provider::Google;
/// use inth_oauth2::provider::google::Installed;
///
/// let client = Client::<Google>::new(
/// let client = Client::<Installed>::new(
/// String::from("CLIENT_ID"),
/// String::from("CLIENT_SECRET"),
/// Some(String::from("urn:ietf:wg:oauth:2.0:oob"))
@ -63,9 +63,9 @@ impl<P: Provider> Client<P> {
///
/// ```
/// use inth_oauth2::Client;
/// use inth_oauth2::provider::Google;
/// use inth_oauth2::provider::google::Installed;
///
/// let client = Client::<Google>::new(
/// let client = Client::<Installed>::new(
/// String::from("CLIENT_ID"),
/// String::from("CLIENT_SECRET"),
/// Some(String::from("urn:ietf:wg:oauth:2.0:oob"))

View File

@ -14,6 +14,7 @@
//! Support for the following OAuth 2.0 providers is included:
//!
//! - Google
//! - Installed
//! - GitHub
//! - Imgur
//!
@ -30,9 +31,9 @@
//!
//! ```
//! use inth_oauth2::Client;
//! use inth_oauth2::provider::Google;
//! use inth_oauth2::provider::google::Installed;
//!
//! let client = Client::<Google>::new(
//! let client = Client::<Installed>::new(
//! String::from("client_id"),
//! String::from("client_secret"),
//! Some(String::from("redirect_uri"))
@ -43,8 +44,8 @@
//!
//! ```
//! # use inth_oauth2::Client;
//! # use inth_oauth2::provider::Google;
//! # let client = Client::<Google>::new(String::new(), String::new(), None);
//! # use inth_oauth2::provider::google::Installed;
//! # let client = Client::<Installed>::new(String::new(), String::new(), None);
//! let auth_uri = client.auth_uri(Some("scope"), Some("state")).unwrap();
//! println!("Authorize the application by clicking on the link: {}", auth_uri);
//! ```
@ -54,8 +55,8 @@
//! ```no_run
//! use std::io;
//! use inth_oauth2::{Client, Token};
//! # use inth_oauth2::provider::Google;
//! # let client = Client::<Google>::new(String::new(), String::new(), None);
//! # use inth_oauth2::provider::google::Installed;
//! # let client = Client::<Installed>::new(String::new(), String::new(), None);
//!
//! let mut code = String::new();
//! io::stdin().read_line(&mut code).unwrap();
@ -69,8 +70,8 @@
//!
//! ```no_run
//! # use inth_oauth2::Client;
//! # use inth_oauth2::provider::Google;
//! # let client = Client::<Google>::new(String::new(), String::new(), None);
//! # use inth_oauth2::provider::google::Installed;
//! # let client = Client::<Installed>::new(String::new(), String::new(), None);
//! # let http_client = Default::default();
//! # let token = client.request_token(&http_client, "").unwrap();
//! let token = client.refresh_token(&http_client, token, None).unwrap();
@ -80,8 +81,8 @@
//!
//! ```no_run
//! # use inth_oauth2::Client;
//! # use inth_oauth2::provider::Google;
//! # let client = Client::<Google>::new(String::new(), String::new(), None);
//! # use inth_oauth2::provider::google::Installed;
//! # let client = Client::<Installed>::new(String::new(), String::new(), None);
//! # let http_client = Default::default();
//! # let mut token = client.request_token(&http_client, "").unwrap();
//! // Refresh token only if it has expired.
@ -96,12 +97,12 @@
//! # extern crate hyper;
//! # extern crate inth_oauth2;
//! # use inth_oauth2::Client;
//! # use inth_oauth2::provider::Google;
//! # use inth_oauth2::provider::google::Installed;
//! use hyper::header::Authorization;
//!
//! # fn main() {
//! let client = hyper::Client::new();
//! # let oauth_client = Client::<Google>::new(String::new(), String::new(), None);
//! # let oauth_client = Client::<Installed>::new(String::new(), String::new(), None);
//! # let token = oauth_client.request_token(&client, "").unwrap();
//! let request = client.get("https://example.com/resource")
//! .header(Into::<Authorization<_>>::into(&token));
@ -117,11 +118,11 @@
//! # extern crate inth_oauth2;
//! # extern crate rustc_serialize;
//! # use inth_oauth2::Client;
//! # use inth_oauth2::provider::Google;
//! # use inth_oauth2::provider::google::Installed;
//! use rustc_serialize::json;
//! # fn main() {
//! # let http_client = Default::default();
//! # let client = Client::<Google>::new(String::new(), String::new(), None);
//! # let client = Client::<Installed>::new(String::new(), String::new(), None);
//! # let token = client.request_token(&http_client, "").unwrap();
//! let json = json::encode(&token).unwrap();
//! # }
@ -131,10 +132,10 @@
//! # extern crate inth_oauth2;
//! extern crate serde_json;
//! # use inth_oauth2::Client;
//! # use inth_oauth2::provider::Google;
//! # use inth_oauth2::provider::google::Installed;
//! # fn main() {
//! # let http_client = Default::default();
//! # let client = Client::<Google>::new(String::new(), String::new(), None);
//! # let client = Client::<Installed>::new(String::new(), String::new(), None);
//! # let token = client.request_token(&http_client, "").unwrap();
//! let json = serde_json::to_string(&token).unwrap();
//! # }

View File

@ -35,17 +35,26 @@ pub trait Provider {
fn credentials_in_body() -> bool { false }
}
/// Google OAuth 2.0 provider.
/// Google OAuth 2.0 providers.
///
/// See [Using OAuth 2.0 to Access Google
/// APIs](https://developers.google.com/identity/protocols/OAuth2).
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct Google;
impl Provider for Google {
type Lifetime = Expiring;
type Token = Bearer<Expiring>;
fn auth_uri() -> &'static str { "https://accounts.google.com/o/oauth2/v2/auth" }
fn token_uri() -> &'static str { "https://www.googleapis.com/oauth2/v4/token" }
pub mod google {
use token::{Bearer, Expiring};
use super::Provider;
/// Google OAuth 2.0 provider for installed applications.
///
/// See [Using OAuth 2.0 for Installed
/// Applications](https://developers.google.com/identity/protocols/OAuth2InstalledApp).
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct Installed;
impl Provider for Installed {
type Lifetime = Expiring;
type Token = Bearer<Expiring>;
fn auth_uri() -> &'static str { "https://accounts.google.com/o/oauth2/v2/auth" }
fn token_uri() -> &'static str { "https://www.googleapis.com/oauth2/v4/token" }
}
}
/// GitHub OAuth 2.0 provider.

View File

@ -11,8 +11,8 @@ fn assert_get_uri_ok(uri: &str) {
}
#[test]
fn google_auth_uri_ok() {
let client = Client::<Google>::new(
fn google_installed_auth_uri_ok() {
let client = Client::<google::Installed>::new(
String::from("143225766783-ip2d9qv6sdr37276t77luk6f7bhd6bj5.apps.googleusercontent.com"),
String::new(),
Some(String::from("urn:ietf:wg:oauth:2.0:oob"))