Дело в том что по умолчанию браузер хранит сессию на все под домены. нужно задать в LocalConfiguration.php
В новом формате
PHP код:
...
'SYS' => array(
'cookieDomain' => 'domain.com', # без точки в начале или нужную вам регулярку.
...
Без точки в начале - это значит что авторизация будет распространятся только на указанный домен или под домен если "www.domain.com". Чтобы умышлено распространить на под домены задаете ".domain.com" или нужную вам регулярку - смотрите примеры ниже.
В старом формате
PHP код:
$GLOBALS['TYPO3_CONF_VARS']['FE']['cookieDomain'] = 'domain.com';
Можно для разных доменов умышлено сделать разные авторизации вот так
PHP код:
$GLOBALS['TYPO3_CONF_VARS']['FE']['cookieDomain'] = $GLOBALS['_SERVER']['HTTP_HOST']; При заходе на разные домены настройка будет принимать текущий домен и требовать создания новых кук.
// $GLOBALS['TYPO3_CONF_VARS']['FE']['cookieName'] = "domain_fe_user_" . $GLOBALS['_SERVER']['HTTP_HOST']; # не обязательно если есть желание задать название кук авторизации.
Вариант должен работать, но я не пробовал
2 вариант) Сомнительный. Чтобы сделать разную авторизацию вам нужно сделать для разного сайта (на под доменах) разные группы пользователей и тогда сессия одного не будет подходить для другого. И пользователю надо будет авторизироваться в подходящей группе. Делается в TS через проверку [usergroup = group1-uid, group2-uid, ...] (
...)
А в целом в Typo3 все предусмотрено и костылить не надо
PHP код:
$GLOBALS['TYPO3_CONF_VARS']['SYS']['cookieDomain'] = ".domain.com"; # распространяет сессию на все поддоменны.
$GLOBALS['TYPO3_CONF_VARS']['SYS']['cookieDomain'] = "/\.(example1|example2)\.com$/";
# или /\.(example1\.com)|(example2\.net)$/ позволит распространить сессию между разными доменами вашего сайта.
Соответственно четко заданный параметр ограничит распространение.
Вы также можете делать разные настройки для BE и FE задавая параметры $GLOBALS['TYPO3_CONF_VARS']['BE']['cookieDomain'] b $GLOBALS['TYPO3_CONF_VARS']['FE']['cookieName'] как указано выше.
PS. После внесения изменений удалите куки браузера, иначе он не создаст новые и вы не увидите результата. Если работаете с разными доменами не забываем правильно настраивать RealUrl. И если есть кроссовые ссылки указываем в ts
PHP код:
config.typolinkCheckRootline=1
config.typolinkEnableLinksAcrossDomains = 1
config.typolinkEnableLinksAccrosDomains = 1