From c4de093f521dd6e4c6574f826e6a22f43a75b294 Mon Sep 17 00:00:00 2001 From: Jonni Liljamo Date: Thu, 2 Mar 2023 13:44:24 +0200 Subject: [PATCH] feat(api): logout endpoint --- api/src/handlers/user/mod.rs | 12 +++++++++++- api/src/main.rs | 1 + 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/api/src/handlers/user/mod.rs b/api/src/handlers/user/mod.rs index e77bb35..4beb783 100644 --- a/api/src/handlers/user/mod.rs +++ b/api/src/handlers/user/mod.rs @@ -6,10 +6,20 @@ * See LICENSE for licensing information. */ +use actix_session::Session; +use actix_web::{get, HttpResponse, Responder}; + mod create; pub(crate) use create::*; mod login; pub(crate) use login::*; -pub(crate) fn logout() {} +#[get("/api/user/logout")] +pub(crate) async fn logout(session: Session) -> impl Responder { + // TODO: can anything here fail? + // should we verify that the session was removed? + session.purge(); + + HttpResponse::NoContent() +} diff --git a/api/src/main.rs b/api/src/main.rs index 06cef47..d8c9186 100644 --- a/api/src/main.rs +++ b/api/src/main.rs @@ -89,6 +89,7 @@ async fn main() -> std::io::Result<()> { .service(handlers::info) .service(handlers::user::create) .service(handlers::user::login) + .service(handlers::user::logout) }) .bind(("0.0.0.0", 8080))? .run() -- 2.44.1