具有共享会话的Yii2高级应用程序不会在会话超时时自动登录

时间:2018-06-05 06:47:09

标签: php yii2 yii2-advanced-app

我是新来的。我遇到了与Yii2高级模板上的共享会话相关的问题。

我有一个带有4个子应用程序的yii2高级应用程序:

frontend - landing page, login
backend - admin panel
customer - panel for customers
provider - panel for providers

我有一个应用程序,我始终从frontend应用程序登录,并根据我的role我被重定向到customerproviderbackend个应用程序

一切正常,直到我的会议结束。在这三个内部应用程序中,我成为未授权用户刷新页面无效,但是当我打开frontend页面并尝试再次登录时,frontend不会向我显示登录表单,而是将其重定向到其中一个具有新会话的应用程序。

看到它再次没有问我凭据,似乎我可以使用frontend应用程序自动登录,但自动登录在其他三个应用程序中不起作用..

我已经使用此问题的答案为我的所有应用程序建立了共享会话:
Yii2 Advanced - Share session between frontend and mainsite

提前谢谢

1 个答案:

答案 0 :(得分:3)

您的所有应用程序中都打开了enableAuoLogin参数吗?

'enableAutoLogin' => true,

如果是,即使你在应用程序之间共享会话,当你第一次执行php init命令时(对于yii2-advanced),请注意它为每个应用程序生成不同的cookieValidationKey。这些验证密钥用于自动登录过程。由于您的所有应用程序都有相同的Cookie,因此cookieValidationKey也应该相同。

这些验证密钥存储在main-local.php配置文件中,用于每个应用程序(frontendbackend文件夹..在您的情况下,我猜您有额外的customerprovider个文件夹)

其中一个解决方案是将cookieValidationKeyfrontend/config/main-local.php复制粘贴到其他main-local.php文件。理想情况下,您必须更改根文件夹中的init文件,使其为您的所有模块/应用程序生成一个cookieValidationKey

我希望它有所帮助。

相关问题