【发布时间】:2015-09-14 17:56:46
【问题描述】:
目前,我的应用程序具有以下结构:
- 前端
- 后端(用户认证)
- 客户端(用户认证)
我正在尝试将一条 Flash 消息从客户端传递到前端。
在客户端应用程序中,我简单地设置了闪光灯:
Yii::$app->session->setFlash('successMessage', 'My success message!');
在前端:
Yii::$app->session->getFlash('successMessage');
但上述显然行不通。
我已经尝试在两个应用的 config/main.php 中设置相同的会话 id,但似乎没有什么不同:
'components' => [
'session' => [
'name' => '_mySharedSessionId',
'savePath' => __DIR__ . '/../runtime',
],
...
]
任何想法我错了吗?
更新 问题可能来自我为每个应用程序设置了 4 个不同的虚拟主机:本地前端、本地后端、本地客户端。如果我将其恢复为默认值,一切似乎都可以正常工作。所以我现在的问题是: 是否有一种通用的方法可以在上述虚拟主机之间共享会话,以便在将网站上传到生产环境时它也可以在那里工作(可能生产环境中的 url 类似于 www.mysite.com、www.client.mysite.com , www.admin.mysite.com)?
【问题讨论】:
-
您使用了多少个域?如果您在不同的域上运行,我不确定您是否可以共享会话。
-
检查您的应用程序之间的会话 cookie 是否匹配。
-
实际上,问题在于我为每个应用设置了不同的虚拟主机:本地前端、本地后端、本地客户端。如果切换回默认本地主机,一切似乎都可以正常工作。我会更新我的问题。