diff --git a/src/api/auth.rs b/src/api/auth.rs index be0fa89..4f8a006 100644 --- a/src/api/auth.rs +++ b/src/api/auth.rs @@ -80,3 +80,9 @@ pub async fn logout() -> Result<()> { } .err_context("Error logging out") } + +/// Retrieve the currently logged-in user, or `None` if unauthenticated +#[get("/api/v1/auth/user", auth: Extension)] +pub async fn get_user() -> Result> { + Ok(auth.user.clone().map(Into::into)) +} diff --git a/src/server/require_auth_mw.rs b/src/server/require_auth_mw.rs index efa60de..c8a337e 100644 --- a/src/server/require_auth_mw.rs +++ b/src/server/require_auth_mw.rs @@ -13,11 +13,12 @@ const ALLOWED_PATH_PREFIX: [&str; 1] = ["/assets/"]; #[cfg(debug_assertions)] const ALLOWED_PATH_PREFIX: [&str; 2] = ["/assets/", "/wasm/"]; -const ALLOWED_PATHS: [&str; 5] = [ +const ALLOWED_PATHS: [&str; 6] = [ "/login", "/signup", "/api/v1/auth/login", "/api/v1/auth/signup", + "/api/v1/auth/user", "/favicon.ico", ];