我在同一域上有两个应用程序,但它们每次用户登录时都会创建一个plack_session。发生这种情况是因为应用程序 A 覆盖了应用程序 B 的 plack 会话。
删除其中一个并使它们使用由中央应用程序创建的名称是一个复杂的过程,但是现在,如何将其中一个"plack_session"名称更改为"plack_session2"之类的名称,以便它们看不到彼此?
我什至不知道这是否可能。
这是Plack Session的文档,但我在这里看不到任何可以帮助我的东西。
如您链接到的文档所示,Plack 会话中间件是使用以下代码启用的:
builder {
enable 'Session',
state => Plack::Session::State->new;
$app;
};
在同一文档的后面部分,您将找到new()
方法的文档:
新 ( %参数 (
%params
可以包括session_key、sid_generator和sid_checker,但在这两种情况下,都会为您提供默认值。session_key
这是会话密钥的名称,默认为"plack_session"。
。
把所有这些放在一起,我猜(我从来没有这样做过(你可以用这样的代码做你想做的事:
builder {
enable 'Session',
state => Plack::Session::State->new(
session_key => 'my_session_key',
);
$app;
};