2016-04-11 4 views
0

Я пытаюсь настроить следующее:PHP сессий между доменами и совместно несколькими доменами

login.domain.com 
site1.domain.com 
site2.domain.com 
https://domain2.com 

где, если пользователь посещает site1.domain.com или site2.domain.com, и они не вошли в систему, они перенаправляются на login.domain.com/?url=site1.domain.com

О php aplication domain.com. Я установил сеанс php.ini, используя redis.

session.save_handler=redis 
session.save_path="tcp://127.0.0.1:6379?weight=1&database=14" 

После аутентификации. Im установить cookie session_id.

На site1.domain.com и site2.domain.com .IM прибудете Cookie

$sessionid = $_COOKIE['session_id']; 
session_id($sessionid); 
session_start(); 

успех Логин пользователя.

Но у меня проблема. Как domain2.com получить cookie, домен https SSL получить доступ к нему и безопасности.

ответ

0

Что вы можете сделать, это передать сеанс непосредственно в URL-адресе. Поэтому, когда вы ссылаетесь на domain2.com вы передаете сессии, как это (если вы не изменили сеанса обработчика ID от значения по умолчанию)

domain2.com?PHPSESSID=[your session ID here] 

Хотя есть некоторые потенциальные риски безопасности (я бы регенерировать идентификаторы в ключевых точках, если это Я был вами), это может решить вашу проблему.

Другим решением будет хэш идентификатора сеанса и сохранение его в экземпляре Redis, а затем установите сеанс на основе этого хэша. Это более безопасно.

+0

Спасибо! Я обновлю и найду решение. – user1828959

Смежные вопросы