Implemented userinfo endpoint and finalized OAuth2.0 flow

This commit is contained in:
Dennis Nemec
2025-10-05 00:54:21 +02:00
parent b87d7e0268
commit 98fb621108
9 changed files with 58 additions and 21 deletions

View File

@ -1,9 +1,9 @@
use crate::api::handle_post;
use crate::api::{handle_post, userinfo};
use crate::config::load_config;
use crate::middleware::AppState;
use crate::repository::RedisRepository;
use crate::util::initialize_logging;
use axum::routing::post;
use axum::routing::{get, post};
use axum::{Extension, Router};
use axum_keycloak_auth::instance::{KeycloakAuthInstance, KeycloakConfig};
use axum_keycloak_auth::layer::KeycloakAuthLayer;
@ -18,12 +18,14 @@ mod gsd;
mod middleware;
mod repository;
mod util;
mod model;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let config = load_config()?;
initialize_logging(&config);
info!("Redirect URI: {}", config.keycloak.redirect_url);
info!("Logging initialized");
info!("Starting Holzleitner Delivery Backend");
@ -51,6 +53,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
let auth_router = auth::router(state.clone());
let proxy_router = Router::new()
.route("/{*wildcard}", post(handle_post))
.route("/userinfo", get(userinfo))
.route_layer(Extension(state.clone()))
.route_layer(axum::middleware::from_fn_with_state(
state.clone(),