Add auth module

This commit is contained in:
Lennart
2023-09-07 18:50:21 +02:00
parent dcd6c01b12
commit e7d73e180a
6 changed files with 232 additions and 0 deletions

23
crates/auth/src/none.rs Normal file
View File

@@ -0,0 +1,23 @@
use actix_web::{http::header::Header, HttpRequest};
use actix_web_httpauth::headers::authorization::{Authorization, Basic};
use futures_util::future::{err, ok, Ready};
use super::{AuthInfo, CheckAuthentication};
#[derive(Debug, Clone)]
pub struct NoneAuth;
impl CheckAuthentication for NoneAuth {
type Error = crate::error::Error;
type Future = Ready<Result<AuthInfo, Self::Error>>;
fn validate(&self, req: &HttpRequest) -> Self::Future {
if let Ok(auth) = Authorization::<Basic>::parse(req) {
ok(AuthInfo {
user_id: auth.as_ref().user_id().to_string(),
})
} else {
err(crate::error::Error::Unauthorized)
}
}
}