When not logged in redirection to login page

Every page is locked behind a jwt, when it is not supplied neither other
pages not api calls will work
This commit is contained in:
2026-05-01 16:18:15 +02:00
parent b672fe9768
commit e54be14526
8 changed files with 221 additions and 68 deletions

View File

@@ -15,6 +15,7 @@ use serde_json::json;
use crate::{
AppState,
cookie::jwt::decode_token,
handlers::auth::filter_user,
models::{LoginScheme, User},
};
@@ -53,9 +54,15 @@ pub async fn validate_token(
token,
&DecodingKey::from_secret(data.env.token_secret.as_ref()),
)
.unwrap();
.map_err(|(status, json_err)| {
let error = json!({
"status": json_err.status,
"message": json_err.message
});
(status, Json(error))
})?;
let uuid = (&claims.subject).parse::<i64>().map_err(|_| {
let uuid = (&claims.sub).parse::<i16>().map_err(|_| {
let error = json!({
"status": "error",
"message": "Invalid user id"
@@ -83,6 +90,6 @@ pub async fn validate_token(
(StatusCode::UNAUTHORIZED, Json(error))
})?;
request.extensions_mut().insert(user);
request.extensions_mut().insert(filter_user(&user));
Ok(next.run(request).await)
}