Session 使用特定id手动启动会话/在域之间转换会话cookie
我的主机要求我使用不同的域进行SSL安全访问(共享SSL),因此我需要在两个域之间转换用户会话。页面的一部分位于Session 使用特定id手动启动会话/在域之间转换会话cookie,session,cakephp,cookies,Session,Cakephp,Cookies,我的主机要求我使用不同的域进行SSL安全访问(共享SSL),因此我需要在两个域之间转换用户会话。页面的一部分位于http://example.com,而SSL部分位于https://example.hosting.com。因此,我无法设置域扩展cookie 我试图做的是转换会话id,并重新设置cookie,如下所示: http://example.com/normal/page,用户单击指向安全区域的链接并转到: http://example.com/secure/page,这会导致重定向到:
http://example.com
,而SSL部分位于https://example.hosting.com
。因此,我无法设置域扩展cookie
我试图做的是转换会话id,并重新设置cookie,如下所示:
,用户单击指向安全区域的链接并转到:http://example.com/normal/page
,这会导致重定向到:http://example.com/secure/page
,它将恢复会话并为域设置有效的新cookie,然后重定向到:https://example.hosting.com/secure/page?sess=ikub...
https://example.hosting.com/secure/page
function beforeFilter() {
...
$this->Session->id($_GET['sess']);
$this->Session->activate();
...
}
据我所知,它应该用给定的ID启动会话。它实际上生成了一个新的会话ID,但是该会话是空的,数据没有还原
这是在CakePHP1.2.4上实现的。我是否需要做其他事情,或者是否有更好的方法来做我正在尝试做的事情?当
Configure::write('Security.level')
设置为medium
或更高时,会话。referer\u check
被隐式激活,这会导致整个操作失败。将安全级别设置为low
(或使用自定义会话配置)可以使一切正常工作
进行了大约5个小时的调试。。。(-)我的第一个想法是使用Cake文件会话并复制文件,然后可能尝试使用该phpsID启动一个新会话,尽管我甚至不确定这是否真的有效:)使用Cake 2.6.1——这对我来说是有效的
$this->Session->id("tfvjv43hjmsnjkh0v3ss539uq7"); // add session id you want to set
$this->Session->id();
$this->Session->read("key"); // hhoorray worked :)
with SessionComponent id()函数需要调用两次,一次使用会话id来设置会话id();第二次开始蛋糕课程。
第一次呼叫不会真正启动会话。。。我不知道蛋糕店的伙计们怎么会错过
如果这对您有效,请向上投票。听起来太麻烦了,可能比当前系统更容易出错。谢谢你的意见。:)至少有礼貌地评论一下你否决答案的原因??