1use keycloak_oauth::client::{ClientConfiguration, ClientError, KeycloakClient};
2use oauth2::TokenResponse;
3
4#[tokio::main]
5async fn main() -> Result<(), ClientError> {
6 let config = ClientConfiguration::from_env();
7
8 let keycloak_client = KeycloakClient::new(config);
9 let token = match keycloak_client.verify_and_refresh_access_token().await {
10 Ok(token) => token,
11 Err(_) => keycloak_client
12 .authenticate()
13 .await?
14 .access_token()
15 .secret()
16 .clone(),
17 };
18
19 println!("{}", token);
21
22 Ok(())
23}