diff --git a/src/user.rs b/src/user.rs index c718c24..8ce2332 100644 --- a/src/user.rs +++ b/src/user.rs @@ -228,14 +228,15 @@ impl<'r> rocket::request::FromRequest<'r> for AuthenticatedUser { type Error = (); async fn from_request(request: &'r rocket::Request<'_>) -> rocket::request::Outcome { - let cookies = request.cookies(); - - if let Some(user_id_cookie) = cookies.get_private("user_id") { - if let Ok(user_id) = Uuid::parse_str(user_id_cookie.value()) { - return rocket::request::Outcome::Success(AuthenticatedUser { user_id }); - } + match request.cookies().get_private("user_id") { + Some(cookie) => { + if let Ok(user_id) = Uuid::parse_str(cookie.value()) { + rocket::request::Outcome::Success(AuthenticatedUser { user_id }) + } else { + rocket::request::Outcome::Forward(Status::Unauthorized) + } + }, + None => rocket::request::Outcome::Forward(Status::Unauthorized), } - - rocket::request::Outcome::Error((rocket::http::Status::Unauthorized, ())) } }