use async_session::base64; use thiserror::Error; #[derive(Debug, Error)] pub enum AuthClientError { #[error("missing field: {0}")] MissingField(&'static str), #[error("invalid auth url: {0}")] InvalidAuthUrl(#[from] oauth2::url::ParseError), #[error("invalid token url: {0}")] InvalidTokenUrl(#[source] oauth2::url::ParseError), #[error("invalid redirect url: {0}")] InvalidRedirectUrl(#[source] oauth2::url::ParseError), } #[derive(Debug, Error)] pub enum AuthError { #[error("missing field: {0}")] MissingField(&'static str), #[error("invalid auth url: {0}")] InvalidAuthUrl(#[from] oauth2::url::ParseError), #[error("invalid token url: {0}")] InvalidTokenUrl(#[source] oauth2::url::ParseError), #[error("invalid redirect url: {0}")] InvalidRedirectUrl(#[source] oauth2::url::ParseError), #[error("cache")] Cache(#[from] redis::RedisError), #[error("missing session")] MissingSession, #[error("invalid session")] InvalidSession, #[error("invalid session")] CorruptedCookie(#[from] base64::DecodeError), #[error("CSRF token mismatch")] TokenMismatch, #[error("CSRF token missing")] NoCSRFToken, }