Add examples to crate root
This commit is contained in:
parent
acb219afad
commit
40e2916343
92
src/lib.rs
92
src/lib.rs
|
@ -1,3 +1,95 @@
|
||||||
|
//! # "It's not that hard" OAuth2 Client
|
||||||
|
//!
|
||||||
|
//! OAuth2 really isn't that hard, you know?
|
||||||
|
//!
|
||||||
|
//! `inth_oauth2` is on [Crates.io][crate] and [GitHub][github].
|
||||||
|
//!
|
||||||
|
//! [crate]: https://crates.io/crates/inth-oauth2
|
||||||
|
//! [github]: https://github.com/programble/inth-oauth2
|
||||||
|
//!
|
||||||
|
//! ## Providers
|
||||||
|
//!
|
||||||
|
//! `inth_oauth2` can be used with any OAuth 2.0 provider, but provides defaults for a few common
|
||||||
|
//! ones.
|
||||||
|
//!
|
||||||
|
//! ### Google
|
||||||
|
//!
|
||||||
|
//! ```
|
||||||
|
//! use inth_oauth2::Client as OAuth2;
|
||||||
|
//!
|
||||||
|
//! let auth = OAuth2::google(
|
||||||
|
//! Default::default(),
|
||||||
|
//! "CLIENT_ID",
|
||||||
|
//! "CLIENT_SECRET",
|
||||||
|
//! Some("REDIRECT_URI")
|
||||||
|
//! );
|
||||||
|
//! ```
|
||||||
|
//!
|
||||||
|
//! ### GitHub
|
||||||
|
//!
|
||||||
|
//! ```
|
||||||
|
//! use inth_oauth2::Client as OAuth2;
|
||||||
|
//!
|
||||||
|
//! let auth = OAuth2::github(
|
||||||
|
//! Default::default(),
|
||||||
|
//! "CLIENT_ID",
|
||||||
|
//! "CLIENT_SECRET",
|
||||||
|
//! None
|
||||||
|
//! );
|
||||||
|
//! ```
|
||||||
|
//!
|
||||||
|
//! ### Other
|
||||||
|
//!
|
||||||
|
//! An authorization URI and a token URI are required.
|
||||||
|
//!
|
||||||
|
//! ```
|
||||||
|
//! use inth_oauth2::Client as OAuth2;
|
||||||
|
//!
|
||||||
|
//! let auth = OAuth2::new(
|
||||||
|
//! Default::default(),
|
||||||
|
//! "https://example.com/oauth2/auth",
|
||||||
|
//! "https://example.com/oauth2/token",
|
||||||
|
//! "CLIENT_ID",
|
||||||
|
//! "CLIENT_SECRET",
|
||||||
|
//! None
|
||||||
|
//! );
|
||||||
|
//! ```
|
||||||
|
//!
|
||||||
|
//! ## Constructing an authorization URI
|
||||||
|
//!
|
||||||
|
//! Direct the user to an authorization URI to have them authorize your application.
|
||||||
|
//!
|
||||||
|
//! ```
|
||||||
|
//! # use inth_oauth2::Client as OAuth2;
|
||||||
|
//! # let auth = OAuth2::google(Default::default(), "", "", None);
|
||||||
|
//! let auth_uri = auth.auth_uri(Some("scope"), Some("state")).unwrap();
|
||||||
|
//! ```
|
||||||
|
//!
|
||||||
|
//! ## Requesting an access token
|
||||||
|
//!
|
||||||
|
//! Using a code obtained from the redirect of the authorization URI, request an access token.
|
||||||
|
//!
|
||||||
|
//! ```no_run
|
||||||
|
//! # use inth_oauth2::Client as OAuth2;
|
||||||
|
//! # let auth = OAuth2::google(Default::default(), "", "", None);
|
||||||
|
//! # let code = String::new();
|
||||||
|
//! let token = auth.request_token(&code).unwrap();
|
||||||
|
//! println!("{}", token.access_token);
|
||||||
|
//! ```
|
||||||
|
//!
|
||||||
|
//! ## Refreshing an access token
|
||||||
|
//!
|
||||||
|
//! Refresh the access token when it has expired.
|
||||||
|
//!
|
||||||
|
//! ```no_run
|
||||||
|
//! # use inth_oauth2::Client as OAuth2;
|
||||||
|
//! # let auth = OAuth2::google(Default::default(), "", "", None);
|
||||||
|
//! # let mut token = auth.request_token("").unwrap();
|
||||||
|
//! if token.expired() {
|
||||||
|
//! token = auth.refresh_token(&token, None).unwrap();
|
||||||
|
//! }
|
||||||
|
//! ```
|
||||||
|
|
||||||
extern crate chrono;
|
extern crate chrono;
|
||||||
extern crate hyper;
|
extern crate hyper;
|
||||||
extern crate rustc_serialize;
|
extern crate rustc_serialize;
|
||||||
|
|
Loading…
Reference in New Issue