Rocket | Как вернуть body из функции `from_request` трейта FromRequest

rustc: 1.60.0

rocket: 0.5.0-rc.1

У меня есть примерно следующий код:

    #[rocket::async_trait]
    impl<'r> FromRequest<'r> for AuthGuard {
        type Error = HubError;

        async fn from_request(request: &'r Request<'_>) -> request::Outcome<Self, Self::Error> {
            match request.headers().get_one("Authorization") {
                ...
            }
        }
    }

В конструкции match обрабатываются различные сценарии "невалидности" токена и в зависимости от ситуации я бы хотела иметь возможность в body возвращать json объект с информацией о том, что конкретно пошло не так при обработке токена. К сожаления не соврем понимаю как это сделать.

Единственное как я могу перехватывать эту ошибку - написать глобальный перехватчик:

#[catch(401)]
fn unauthorized() -> HubError {
    ...
}

Возможно есть какие-то другие альтернативы того, как можно получить нужный результат.


Ответы (0 шт):