2015-07-02 2 views
2

У меня есть несколько доменов на одном сервере с одним и тем же IP-адресом и теми же базами данных, к которым могут обращаться все 5 доменов.Перекрестный домен Вход

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

Это замечательно, но проблема возникает при переключении доменов, так как файлы cookie кажутся для блокировки до доменов. Таким образом, мой другой домен (позвонив ему domain2.com) не может прочитать cookie из домена1.com.

Есть ли какие-нибудь умные способы обойти это? Я мог бы написать что-то в базу данных, такую ​​как IP, но это не было бы очень безопасно, поскольку компания, работающая для всех, находится на одном IP-адресе, и поэтому она не была бы конкретной.

Или я подумал о том, может быть, включая скрытый iframe на странице, который на самом деле ссылается на страницу на главном сервере и каким-то образом передает информацию таким образом.

Я не уверен, но я уверен, что это можно сделать. Есть идеи?

+0

Я не уверен, но флеш-куки могут работать между доменами ... – user1844933

+0

другой метод, перенаправить на ваш домен1.com и проверить наличие cookie, если он есть, а затем перенаправить на домен2.com с файлом cookie – user1844933

ответ

0

Браузеры по уважительным причинам запрещают чтение файлов cookie из любого другого домена.

Что вы можете сделать, так это переадресовать domain2.com на страницу domain1.com, которая проверяет, вошел ли пользователь в систему, и если он перенаправляется обратно на домен2.com с идентификатором пользователя, который затем может их зарегистрировать .

-1

Вы не должны зависеть от оригинальных функций сеанса PHP Коллекции.
Вот что я сделал:
После успешного входа в систему серверная сторона должна вернуть «идентификатор сеанса» в браузер и сохранить по JavaScript или каким-то образом, в то время как «идентификатор сеанса» должен храниться в базе данных как успешный сигнал, и при необходимости вы делаете время входа в систему рядом с идентификатором сеанса.

Теперь вы можете обмениваться идентификатором сеанса на любом IP-сервере, который вы хотите, и подключить своего клиента (какой-то трюк, как вы перенаправляетесь на новый домен и размещать SID), а затем установить сеанс PHP.

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