【发布时间】:2017-08-09 14:29:04
【问题描述】:
我有一个 perl-cgi 脚本,我试图通过它登录。
当用户名和密码有效时,我创建一个会话并将 cookie 重定向到另一个页面。
但是,在会话到期后(我已经设置了到期时间),在这种情况下,我没有看到它从 /tmp/sessions 文件夹中删除。我也使用该命令删除了会话。
有人可以帮我在会话过期后删除它吗?另外,删除会话后cookie会过期吗?
use CGI::Session;
use CGI::Session::Tutorial;
use CGI::Session::Driver::file;
use CGI::Cookie;
my $session = new CGI::Session("driver:File", undef, {Directory=>"/tmp/sessions"});
my $sid = $session->id();
#my $cookie = $query->cookie(CGISESSID => $session->id);
my $cookie = $query->cookie(-name=>"CGISESSID",
-value=>$session->id,
-domain=>'abc.com',
-expires=>"+5m",
-path=>"/");
print $query->redirect(-uri => 'http://abc.cgi', -cookie => $cookie);
$session->param("UserName", $loginUserName);
$query->hidden( 'UserName', $loginUserName );
$session->expire("UserName",'1m');
$session->expire('+5m');
$session->delete();
【问题讨论】:
-
这绝对不是minimal reproducible example - 这段代码所做的只是创建一个会话然后删除它。
-
我希望它在会话到期后删除。