Php 具有共享会话的Yii2高级应用在会话超时时不自动登录
我是新来的。我有一个关于Yii2高级模板共享会话的问题 我有一个包含4个子应用程序的yii2高级应用程序:Php 具有共享会话的Yii2高级应用在会话超时时不自动登录,php,yii2,yii2-advanced-app,Php,Yii2,Yii2 Advanced App,我是新来的。我有一个关于Yii2高级模板共享会话的问题 我有一个包含4个子应用程序的yii2高级应用程序: frontend - landing page, login backend - admin panel customer - panel for customers provider - panel for providers 我有一个应用程序,我总是从前端应用程序登录,根据我的角色我被重定向到客户、提供商或后端应用程序 一切正常,直到我的会话超时。在这三个内部应用程序中,我成为未经授
frontend - landing page, login
backend - admin panel
customer - panel for customers
provider - panel for providers
我有一个应用程序,我总是从前端
应用程序登录,根据我的角色
我被重定向到客户
、提供商
或后端
应用程序
一切正常,直到我的会话超时。在这三个内部应用程序中,我成为未经授权的用户。刷新页面没有任何作用,但是当我打开frontend
页面并再次尝试登录时,frontend
不会显示登录表单,而是将我重定向到具有新会话的其中一个应用程序
看到它不再向我询问凭据,我似乎可以使用frontend
app自动登录,但自动登录在其他三个应用程序中不起作用
我已使用此问题中的答案为我的所有应用程序创建了共享会话:提前感谢是否在所有应用程序中启用了
启用登录
参数
'enableAutoLogin' => true,
如果是,即使您在应用程序之间共享了会话,当您第一次执行php init
命令(对于yii2 advanced)时,请注意它会为每个应用程序生成不同的cookieValidationKey
。这些验证密钥用于自动登录过程。由于所有应用程序都有相同的cookie,因此cookieValidationKey
也应该相同
这些验证键存储在每个应用程序的main local.php
config文件中(frontend
,backend
文件夹)。在您的情况下,我想,您有额外的customer
和provider
文件夹)
解决方案之一是将粘贴cookieValidationKey
从frontend/config/main local.php
复制到其他main local.php
文件。理想情况下,您必须更改根文件夹中的init
文件,使其为所有模块/应用程序生成一个cookieValidationKey
希望能有帮助。谢谢!我减少了会话超时并进行了检查,似乎它起作用了!