Make oauth pub in the client to access internals
This commit is contained in:
parent
b3012f1940
commit
f4cf2fcea3
11
src/lib.rs
11
src/lib.rs
|
@ -14,13 +14,11 @@
|
||||||
//! let redirect = reqwest::Url::parse("https://my-redirect.foo")?;
|
//! let redirect = reqwest::Url::parse("https://my-redirect.foo")?;
|
||||||
//! let issuer = oidc::issuer::google();
|
//! let issuer = oidc::issuer::google();
|
||||||
//! let client = oidc::discover(id, secret, redirect, issuer)?;
|
//! let client = oidc::discover(id, secret, redirect, issuer)?;
|
||||||
//! let scope = "openid";
|
|
||||||
//! let state = "randomstring";
|
|
||||||
//! let auth_url = client.auth_url(Default::default())?;
|
//! let auth_url = client.auth_url(Default::default())?;
|
||||||
//!
|
//!
|
||||||
//! // ... send your user to auth_url, get an auth_code back at your redirect_url handler
|
//! // ... send your user to auth_url, get an auth_code back at your redirect_url handler
|
||||||
//!
|
//!
|
||||||
//! let token = client.authenticate(auth_code, Options::default())?;
|
//! let token = client.authenticate(auth_code, Default::default())?;
|
||||||
//! ```
|
//! ```
|
||||||
//!
|
//!
|
||||||
//! That example leaves you with a decoded `Token` that has been validated. Your user is
|
//! That example leaves you with a decoded `Token` that has been validated. Your user is
|
||||||
|
@ -51,7 +49,6 @@
|
||||||
//! let mut token = client.request_token(&http, auth_code)?;
|
//! let mut token = client.request_token(&http, auth_code)?;
|
||||||
//! client.decode_token(&mut token)?;
|
//! client.decode_token(&mut token)?;
|
||||||
//! client.validate_token(&token, None, None)?;
|
//! client.validate_token(&token, None, None)?;
|
||||||
//!
|
|
||||||
//! let userinfo = client.request_userinfo(&http, &token)?;
|
//! let userinfo = client.request_userinfo(&http, &token)?;
|
||||||
//! ```
|
//! ```
|
||||||
//!
|
//!
|
||||||
|
@ -63,6 +60,7 @@
|
||||||
//! performance penalty.
|
//! performance penalty.
|
||||||
//! - Tokens don't come decoded or validated. You need to do both manually.
|
//! - Tokens don't come decoded or validated. You need to do both manually.
|
||||||
//! - This version demonstrates userinfo. It is not required by spec, so make sure its available!
|
//! - This version demonstrates userinfo. It is not required by spec, so make sure its available!
|
||||||
|
//! (you get an Error::Userinfo::Nourl if it is not)
|
||||||
|
|
||||||
extern crate base64;
|
extern crate base64;
|
||||||
extern crate biscuit;
|
extern crate biscuit;
|
||||||
|
@ -102,9 +100,9 @@ use token::{Claims, Token};
|
||||||
|
|
||||||
type IdToken = Compact<Claims, Empty>;
|
type IdToken = Compact<Claims, Empty>;
|
||||||
|
|
||||||
|
/// OpenID Connect Client for a provider specified at construction.
|
||||||
pub struct Client {
|
pub struct Client {
|
||||||
oauth: inth_oauth2::Client<Discovered>,
|
pub oauth: inth_oauth2::Client<Discovered>,
|
||||||
jwks: JWKSet<Empty>,
|
jwks: JWKSet<Empty>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -119,7 +117,6 @@ macro_rules! wrong_key {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// OpenID Connect Client for a provider specified at construction.
|
|
||||||
impl Client {
|
impl Client {
|
||||||
/// Constructs a client from an issuer url and client parameters via discovery
|
/// Constructs a client from an issuer url and client parameters via discovery
|
||||||
pub fn discover(id: String, secret: String, redirect: Url, issuer: Url) -> Result<Self, Error> {
|
pub fn discover(id: String, secret: String, redirect: Url, issuer: Url) -> Result<Self, Error> {
|
||||||
|
|
Loading…
Reference in New Issue