Как работать с Cookie при многосайтовости на разных доменах?
Всем привет.
Есть сайт с многосайтовостью на разных доменах - site.ru и site.com
Сохраняю пользователю cookie на сайте site.ru, но при переходе на site.com эти cookie не установлены.
Уже всю голову сломал.
Подскажите, как мне сохранять cookie сразу на все домены?
Дополнительно:
ломать ничего не надо. надо всего лишь научиться пользоваться интернетом.
на этот вопрос уже отвечали миллион раз
гуглить пхп многосайтовая авторизация
Ответы:
Рабочее решение, которое когда-то давно использовал.
К форме авторизации добавить ещё одну скрытую форму, которая будет отправлять через iframe POST-запрос на другой домен. Там проверять, что это дополнительная авторизация (чтобы не возвращать ответ в стиле основной формы), идентифицировать пользователя и ставить куки на этот домен. Таким образом можно сделать множество форм и поставить куки на любое количество зеркал. Может быть проблема из-за дефолтных настроек безопасности браузера, блокирующих кросс-доменные запросы. Тогда таким браузером оказался IE. Как с данным подходом работают современные браузеры - не проверял.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для работы с Cookie при многосайтовости на разных доменах нужно учитывать некоторые особенности и использовать определенные методы. Вот несколько шагов, которые помогут вам решить эту проблему:
1. Установите параметр domain в Cookie: При установке Cookie укажите параметр domain, который будет указывать на корневой домен, на котором он будет доступен. Например, если у вас есть домены example.com и subdomain.example.com, установите параметр domain=".example.com" при создании Cookie.
setcookie("cookie_name", "cookie_value", time() + 3600, "/", ".example.com");
2. Используйте функцию ini_set для установки параметра session.cookie_domain: Если вы используете сессии в PHP, установите параметр session.cookie_domain равным корневому домену. Это позволит сессионным файлам быть доступными на всех поддоменах.
ini_set("session.cookie_domain", ".example.com");
3. Обработка Cookie на разных доменах: При обработке Cookie на разных доменах убедитесь, что вы указываете правильный домен при установке и чтении Cookie. В противном случае они не будут доступны на разных доменах.
4. Работа с Cross-Origin Resource Sharing (CORS): Если вы используете AJAX запросы между разными доменами, убедитесь, что ваш сервер поддерживает CORS. На стороне сервера укажите заголовок Access-Control-Allow-Origin для разрешения доступа к данным с другого домена.
header("Access-Control-Allow-Origin: http://example.com");
Следуя этим шагам, вы сможете успешно работать с Cookie при многосайтовости на разных доменах. Не забывайте также обеспечить безопасность данных при работе с Cookie и следовать стандартам безопасности.