Add Client::github constructor

This commit is contained in:
Curtis McEnroe 2015-11-28 12:52:18 -05:00
parent 454f8a1f62
commit 8484ee48e6
2 changed files with 31 additions and 0 deletions

15
examples/github.rs Normal file
View File

@ -0,0 +1,15 @@
extern crate inth_oauth2;
use inth_oauth2::Client;
fn main() {
let client = Client::github(
"01774654cd9a6051e478",
"9f14d16d95d605e715ec1a9aecec220d2565fd5c",
Some("https://cmcenroe.me/oauth2-paste")
);
let auth_uri = client.auth_uri(Some("user"), None).unwrap();
println!("{}", auth_uri);
}

View File

@ -47,6 +47,22 @@ impl Client {
}
}
/// Creates a GitHub OAuth 2.0 client.
pub fn github<S: Into<String>>(
client_id: S,
client_secret: S,
redirect_uri: Option<S>
) -> Self {
Client {
auth_uri: String::from("https://github.com/login/oauth/authorize"),
token_uri: String::from("https://github.com/login/oauth/access_token"),
client_id: client_id.into(),
client_secret: client_secret.into(),
redirect_uri: redirect_uri.map(Into::<String>::into),
}
}
/// Constructs an authorization request URI.
pub fn auth_uri(&self, scope: Option<&str>, state: Option<&str>) -> ParseResult<String> {
let mut uri = try!(Url::parse(&self.auth_uri));