对同一个域使用不同的会话

Use different sessions for the same domain

我在 Yii2 中构建了 2 个 web 应用程序,但它们在本地网络中工作,所以如果用户需要访问第一个应用程序,他会去例如 http://localhost/adv/web/index.php 和第二个应用程序 http://localhost/arch/web/index.php

问题是: 例如,在用户 john 的第一个应用程序 userid=2 中, 用户 doe.

的第二个应用 userid=2

如果第一个应用程序中的用户已登录且 ID=2 john,如果他访问另一个应用程序,他将为其他用户获取 ID=2 的其他用户的会话 doe

如果用户访问其他应用程序,我需要强制用户登录。

您可以在会话中更改变量名称,例如,如果像这样的会话

[ 'userid' => 2 ]

你可以用另一个名字在会话中保存用户 ID,就像这样

[ 
  'adv_userid' => 2,
  'arch_user_id' => 4
]

或者如果您很难更改所有名称,您可以在会话中保存

user_id + (password or login)


如果他登录了 adv 应用程序,他的登录将不适用于 arch 应用程序

您可以在其配置中为不同的应用程序设置不同的会话名称。例如 adv:

'session' => [
    'name' => 'session_adv',
],

对于arch

'session' => [
    'name' => 'session_arch',
],