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:
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user