[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: сессии домена и субдомена
meryfelow
Есть система, скажем на domain.com где пользователи могут что то делать только через авторизацию. То есть только после того как авторизировался - сможет смотреть всякие отчеты под своей учеткой. В сессии хранится user_company, user_id ну и другие переменные.
Подняли субдомен, скажем docs.domain.com.
Развернули на субдомене owncloud.
Собственно захотелось, чтобы логинясь на основной домен - происходила и автоматом авторизация на owncloude субдомене.
Так как все лежит на одном сервере, то покопавшись в коде owncloude,
на основном домене сделал функцию, которая делает примерно следуюущее
require_once '/home/docs.domain.com/lib/base.php';
require_once '/home/docs.domain.com/lib/public/AppFramework/App.php';
$app = new OC\Core\Application();
$container = $app->getContainer();
$res = $container['LoginController']->tryLogin($user_info[0]["owncloud_login"], $user_info[0]["owncloud_password"]);


В принципе, после того как выполняется
 tryLogin($user_info[0]["owncloud_login"], $user_info[0]["owncloud_password"]);
- и обновляешь страничку на другой вкладке, где открыта страничка авторизации docs.domain.com - то сразу появляется список файлов клиентов - то есть удачно происходит авторизация.
Но вот после того, как выполнилась эта функция - на основном домене сессия слетает
$_SESSION["user_company"], $_SESSION["user_id"] пусты
Но если вывести S_SESSION на субдомене - то там они есть.
Куда рыть и что смотреть - чтобы не слетала сессия на основном домене?

meryfelow
Нашел причину.
Есть в owncloud

public function __construct($name) {
session_name("test");
set_error_handler([$this, 'trapError']);
try {
session_start();
} catch (\Exception $e) {
setcookie(session_name(), null, -1, \OC::$WEBROOT ? : '/');
}
restore_error_handler();
if (!isset($_SESSION)) {
throw new \Exception('Failed to start session');
}
}


Если дать имя сессии там такое как и на основном домене - то все начинает работать
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.