1

我在同一个域上有两个应用程序,但是每次用户登录时它们都会创建一个 plack_session。这是因为应用程序 A 覆盖了应用程序 B 的 plack 会话。

删除其中一个并让它们使用由中央应用程序创建的一个是一个复杂的过程,但是现在,我如何将这些“plack_session”名称中的一个更改为“plack_session2”之类的名称,以便他们看不到每个其他?

我什至不知道这是否可能。

这是 Plack Session 的文档,但我在这里看不到任何可以帮助我的东西。

4

1 回答 1

4

如您链接到的文档中所示,Plack 会话中间件使用如下代码启用:

builder {
    enable 'Session',
        state => Plack::Session::State->new;
    $app;
};

稍后在同一文档中,您将找到该new()方法的文档:

新的( %params )

%params可以包括session_keysid_generatorsid_checker但是在这两种情况下都会为您提供默认值。

session_key

这是会话密钥的名称,默认为“plack_session”。

...

把所有这些放在一起,我猜(我从来没有这样做过)你可以用这样的代码做你想做的事:

builder {
    enable 'Session',
        state => Plack::Session::State->new(
          session_key => 'my_session_key',
        );
    $app;
};
于 2020-05-20T20:41:13.160 回答