如何更改 CGI::Session 中的域?

How to change domain in CGI::Session?

我想使用 CGI::Session 模块来实现我的网站会话。 我想以适合我想要的域的方式更改会话 cookie。

例如,我有两个站点,www.mysite.comdev.mysite.com

在这种情况下,我希望会话 cookie 域为 mysite.com

我尝试使用该模块,但它只保留脚本的域,我想更改它。

有办法吗?因为我查看了文档并没有找到任何东西。

首先,如果您希望 www.mysite.comdev.mysite.com 都可以看到 cookie,则需要将 cookie 绑定到 .mysite.com,而不是 mysite.com .

关于问题。

print $session->header( ... );

被记录为

的快捷方式
my $cookie = CGI::Cookie->new(
   -name  => $session->name,
   -value => $session->id,
);
print $cgi->header( -cookie => $cookie, ... );

所以你可以使用

my $cookie = CGI::Cookie->new(
   -name   => $session->name,
   -value  => $session->id,
   -domain => '.mysite.com',
);
print $cgi->header( -cookie => $cookie );