Constant AUTH_GUARD
Source pub const AUTH_GUARD: &str = r#"use rocket::http::Status;
use rocket::request::{FromRequest, Outcome, Request};
use crate::auth::validate_token;
#[allow(dead_code)]
pub struct AuthClaims {
pub credentials: String,
}
#[rocket::async_trait]
impl<'r> FromRequest<'r> for AuthClaims {
type Error = AuthError;
async fn from_request(req: &'r Request<'_>) -> Outcome<Self, Self::Error> {
let cookie = req.cookies().get("auth_token");
match cookie {
Some(c) => match validate_token(c.value()).await {
Ok(credentials) => Outcome::Success(AuthClaims { credentials }),
Err(_) => {
Outcome::Error((Status::Unauthorized, AuthError::InvalidToken(())))
}
},
None => Outcome::Error((Status::Unauthorized, AuthError::MissingToken)),
}
}
}
#[derive(Debug)]
pub enum AuthError {
MissingToken,
InvalidToken(()),
}
"#;