好的..我有两个域example.com和example.net,它们共享相同的代码空间和会话。问题是当用户更改语言时,域应该更改,当发生这种情况时,所有会话数据都会丢失。我想在此之前做一个ajax调用,所以我可以改变会话。 以下是用于初始化会话的代码。
<?php
ini_set('session.use_only_cookies', 'Off');
ini_set('session.use_cookies', 'On');
ini_set('session.use_trans_sid', 'Off');
ini_set('session.cookie_httponly', 'On');
session_set_cookie_params(0, '/');
session_start();
session_id($_POST['session_id']);
header('Content-Type: application/json');
$data = array('session_id' => session_id());
echo json_encode($data);
我尝试创建一个独立脚本来处理ajax调用,但它无法正常工作。
{{1}}
在两个域之间切换时,不会保留会话。 有线索吗?
答案 0 :(得分:1)
这是网络浏览器的安全功能 - 会话使用附加到域的cookie,浏览器不会将此cookie发送到其他域。
当您控制两个域时,您可以通过在URL中包含身份验证信息来实现此目的。这是一个复杂的话题。您可以自制一些可行的东西,但如果您不熟悉安全问题,最好使用现成的单点登录解决方案。