我是新来的。我遇到了与Yii2高级模板上的共享会话相关的问题。
我有一个带有4个子应用程序的yii2高级应用程序:
frontend - landing page, login
backend - admin panel
customer - panel for customers
provider - panel for providers
我有一个应用程序,我始终从frontend
应用程序登录,并根据我的role
我被重定向到customer
,provider
或backend
个应用程序
一切正常,直到我的会议结束。在这三个内部应用程序中,我成为未授权用户刷新页面无效,但是当我打开frontend
页面并尝试再次登录时,frontend
不会向我显示登录表单,而是将其重定向到其中一个具有新会话的应用程序。
看到它再次没有问我凭据,似乎我可以使用frontend
应用程序自动登录,但自动登录在其他三个应用程序中不起作用..
我已经使用此问题的答案为我的所有应用程序建立了共享会话:
Yii2 Advanced - Share session between frontend and mainsite
提前谢谢
答案 0 :(得分:3)
您的所有应用程序中都打开了enableAuoLogin
参数吗?
'enableAutoLogin' => true,
如果是,即使你在应用程序之间共享会话,当你第一次执行php init
命令时(对于yii2-advanced),请注意它为每个应用程序生成不同的cookieValidationKey
。这些验证密钥用于自动登录过程。由于您的所有应用程序都有相同的Cookie,因此cookieValidationKey
也应该相同。
这些验证密钥存储在main-local.php
配置文件中,用于每个应用程序(frontend
,backend
文件夹..在您的情况下,我猜您有额外的customer
和provider
个文件夹)
其中一个解决方案是将cookieValidationKey
从frontend/config/main-local.php
复制粘贴到其他main-local.php
文件。理想情况下,您必须更改根文件夹中的init
文件,使其为您的所有模块/应用程序生成一个cookieValidationKey
。
我希望它有所帮助。