Frontend: Session storage fixes
This commit is contained in:
@@ -22,9 +22,12 @@ use strict;
|
||||
use warnings;
|
||||
|
||||
our %sessions;
|
||||
my %sessionAccess;
|
||||
|
||||
sub newSessionToken {
|
||||
return Digest::SHA::sha256_hex(sprintf("%x", rand(0xFFFFFFFF)));
|
||||
my $session = Digest::SHA::sha256_hex(sprintf("%x", rand(0xFFFFFFFF)));
|
||||
$sessionAccess{$session} = time();
|
||||
return $session;
|
||||
}
|
||||
|
||||
sub deleteSession {
|
||||
@@ -32,13 +35,23 @@ sub deleteSession {
|
||||
|
||||
if(isValidSession($aSession)) {
|
||||
delete $sessions{$aSession};
|
||||
delete $sessionAccess{$aSession};
|
||||
}
|
||||
}
|
||||
|
||||
sub isValidSession {
|
||||
my $aSession = $_[0];
|
||||
|
||||
return defined($sessions{$aSession});
|
||||
foreach my $key (keys(%sessionAccess)) {
|
||||
if(time()-$sessionAccess{$key}>7*24*3600) {
|
||||
deleteSession($key);
|
||||
}
|
||||
}
|
||||
if(defined($sessions{$aSession})) {
|
||||
$sessionAccess{$aSession} = time();
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
Reference in New Issue
Block a user