feat: add user in db

This commit is contained in:
2026-05-06 15:22:49 +02:00
parent 7f77bfef4e
commit d7ddc087a6
11 changed files with 901 additions and 35 deletions
+34 -2
View File
@@ -1,11 +1,24 @@
use axum::{extract::Request, http::StatusCode, middleware::Next, response::Response};
use axum::{
extract::{Request, State},
http::StatusCode,
middleware::Next,
response::Response,
};
use uuid::Uuid;
use crate::middlewares::auth::{
jwt::validate_token,
keycloak::{get_jwks, refresh_jwks},
};
pub async fn auth_middleware(mut request: Request, next: Next) -> Result<Response, StatusCode> {
use crate::databases::postgres::user_repository::ensure_user_exists;
use crate::state::app_state::AppState;
pub async fn auth_middleware(
State(state): State<AppState>,
mut request: Request,
next: Next,
) -> Result<Response, StatusCode> {
tracing::debug!("Middleware hit");
let headers = request.headers();
@@ -28,6 +41,16 @@ pub async fn auth_middleware(mut request: Request, next: Next) -> Result<Respons
Ok(claims) => {
tracing::debug!("Token valid");
// Create user in db
let user_id = claims
.sub
.parse::<Uuid>()
.map_err(|_| StatusCode::UNAUTHORIZED)?;
ensure_user_exists(&state.postgres, user_id)
.await
.map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?;
request.extensions_mut().insert(claims);
Ok(next.run(request).await)
@@ -37,6 +60,15 @@ pub async fn auth_middleware(mut request: Request, next: Next) -> Result<Respons
match validate_token(token, &jwks) {
Ok(claims) => {
let user_id = claims
.sub
.parse::<Uuid>()
.map_err(|_| StatusCode::UNAUTHORIZED)?;
ensure_user_exists(&state.postgres, user_id)
.await
.map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?;
request.extensions_mut().insert(claims);
Ok(next.run(request).await)
}