User middleware, fix #54

This commit is contained in:
Lennart
2025-04-12 13:12:48 +02:00
parent 6369fb3542
commit 30b0bf5b56
2 changed files with 15 additions and 9 deletions

View File

@@ -33,7 +33,7 @@ pub async fn route_post_login<AP: AuthenticationProvider>(
.validate_user_token(&form.username, &form.password)
.await
{
session.insert("user", user).unwrap();
session.insert("user", user.id).unwrap();
Redirect::to(format!("/frontend/user/{}", &form.username))
.see_other()
.respond_to(&req)

View File

@@ -1,17 +1,17 @@
use super::{AuthenticationProvider, User};
use actix_session::Session;
use actix_web::{
dev::{forward_ready, Service, ServiceRequest, ServiceResponse, Transform},
http::header::Header,
FromRequest, HttpMessage,
dev::{Service, ServiceRequest, ServiceResponse, Transform, forward_ready},
http::header::Header,
};
use actix_web_httpauth::headers::authorization::{Authorization, Basic};
use std::{
future::{ready, Future, Ready},
future::{Future, Ready, ready},
pin::Pin,
sync::Arc,
};
use tracing::{info_span, Instrument};
use tracing::{Instrument, info_span};
pub struct AuthenticationMiddleware<AP: AuthenticationProvider> {
auth_provider: Arc<AP>,
@@ -81,10 +81,16 @@ where
// Extract user from session cookie
if let Ok(session) = Session::extract(req.request()).await {
match session.get::<User>("user") {
Ok(Some(user)) => {
req.extensions_mut().insert(user);
}
match session.get::<String>("user") {
Ok(Some(user_id)) => match auth_provider.get_principal(&user_id).await {
Ok(Some(user)) => {
req.extensions_mut().insert(user);
}
Ok(None) => {}
Err(err) => {
dbg!(err);
}
},
Ok(None) => {}
Err(err) => {
dbg!(err);