From eaea93fb9e5970012c71a60c96314235f65fc5e5 Mon Sep 17 00:00:00 2001 From: mrkubax10 Date: Sat, 9 Sep 2023 10:58:26 +0200 Subject: [PATCH] Frontend: Add logout_action --- frontend_routes.pm | 7 +++++++ frontend_session.pm | 8 ++++++++ 2 files changed, 15 insertions(+) diff --git a/frontend_routes.pm b/frontend_routes.pm index fb54c34..493f50d 100644 --- a/frontend_routes.pm +++ b/frontend_routes.pm @@ -116,6 +116,13 @@ sub handlePath { $aClient->send($response); return 1; } + when("/logout_action") { + if(defined($aRequest->{"cookies"}{"session"})) { + frontend_session::deleteSession($aRequest->{"cookies"}{"session"}); + } + frontend::redirect($aClient, "/"); + return 1; + } when("/view_logs") { my $channelID = $aRequest->{"path"}{"parameters"}{"channel"}; if(!defined($channelID)) { diff --git a/frontend_session.pm b/frontend_session.pm index eade03d..f02151a 100644 --- a/frontend_session.pm +++ b/frontend_session.pm @@ -27,6 +27,14 @@ sub newSessionToken { return Digest::SHA::sha256_hex(sprintf("%x", rand(0xFFFFFFFF))); } +sub deleteSession { + my $aSession = $_[0]; + + if(isValidSession($aSession)) { + delete $sessions{$aSession}; + } +} + sub isValidSession { my $aSession = $_[0];