use toolkit_auth::{HttpClientBuilderExt, OAuthClientConfig, SecretString, Token};
use toolkit_http::HttpClientBuilder;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let token = Token::new(OAuthClientConfig {
token_endpoint: Some("https://idp.example.com/oauth/token".parse()?),
client_id: "my-service".into(),
client_secret: SecretString::new("my-secret"),
scopes: vec!["tenants.read".into(), "tenants.write".into()],
..Default::default()
})
.await?;
let client = HttpClientBuilder::new().with_bearer_auth(token).build()?;
let _resp = client
.get("https://resolver.example.com/api/v1/tenants")
.send()
.await?;
println!("Request sent with auto-injected Bearer token");
Ok(())
}