Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Инструменты разработчика (http://forum.typo3.ru/forumdisplay.php?f=34)
-   -   BE login и мультидомен (http://forum.typo3.ru/showthread.php?t=11364)

Ивано++ 09.07.2014 22:28

BE login и мультидомен
 
Есть два домена - сайт работает на одной админке.

Как настроить систему, что бы входя один раз на любом домене в BE, авторизация проходила сразу на двух?

Андрей Аксенов 10.07.2014 09:07

По-моему никак.
Авторизация через кукисы, а для браузера кукисы ставятся для каждого из доменов, так что для него - это разные сайты.
Можно еще попробовать поиграться с настройками кукисов в localconf.php, но это мало чего решает... сам когда-то столкнулся с таким поведением, забил...
Можно, конечно, поднять этот вопрос в багтрекере TYPO3, но вроде как там тоже ничего вразумительного не услышал.

Ивано++ 10.07.2014 10:32

Спасибо за ответ.
Нашел сегодня:) ...
PHP код:

/////////////////////////////////////////////////////////
// Мультидоменная авторизация в BE (cookieDomain)
/////////////////////////////////////////////////////////
$GLOBALS['TYPO3_CONF_VARS']['SYS']['cookieDomain'] = '/.*/'


Андрей Аксенов 10.07.2014 11:31

Ну и как, работает при такой настройке?

Ивано++ 10.07.2014 14:48

Работает.
1 раз авторизировавшись - это распространяется на все домены.

Андрей Аксенов 10.07.2014 14:54

Отлично, занесу себе в заметки...

Ивано++ 27.07.2014 21:05

Вот так еще очень интересно:
PHP код:


/////////////////////////////////////////////////////////
// Мультидоменная авторизация в BE (cookieDomain)
// Разные FE-сессии для пользователей разных доменов
/////////////////////////////////////////////////////////
//$GLOBALS['TYPO3_CONF_VARS']['SYS']['cookieDomain'] = '/.*/';
$GLOBALS['TYPO3_CONF_VARS']['BE']['cookieDomain'] = '/.*/';
$GLOBALS['TYPO3_CONF_VARS']['FE']['cookieName'] = "domain_fe_user_" $GLOBALS['_SERVER']['HTTP_HOST'];
$GLOBALS['TYPO3_CONF_VARS']['FE']['cookieDomain'] = $GLOBALS['_SERVER']['HTTP_HOST']; 


Ивано++ 28.07.2014 19:17

Вот для FE почему-то не получается настроить разные логины для разных доменов.

Автоматизируясь на одном сайте - сессия распространяется и на поддомены - может кто сталкивался?

webberry 14.04.2015 13:13

Поддомены или никак
 
Дело в том что по умолчанию браузер хранит сессию на все под домены. нужно задать в 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 



Часовой пояс GMT +4, время: 02:37.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
Перевод: zCarot