# irclogger_web # Copyright (C) 2023 mrkubax10 # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . package frontend_session; use Digest::SHA; use strict; use warnings; our %sessions; 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]; return defined($sessions{$aSession}); } 1;