Средствами из "коробочки", можно объединить сайт и поддомен общими пользователями и куками. Когда пробовал добавить другой домен пропадала авторизация. В интернете нашел такой метод
if (!isset($_COOKIE["drd"])) {
if (isset($_GET['drd'])) {
setcookie("drd", $_GET['drd'], time() + 2592000, "/");
header('Location: site2.ru/');
exit;
}
setcookie("drd", "site1.ru", time() + 2592000, "/");
header('Location: site2.ru/?drd=site1.ru');
exit;
} else {
$drd = $_COOKIE["drd"];
if ($drd != "site1.ru") {
header('Location: site2.ru/');
}
}
На втором домене размещаем аналогичный код, только заменяем site1 на site2 и обратно.
Вуаля, у пользователя всегда открывается сайт, к которому он обратился первым.
Хорошо бы иметь какой-то способ сбрасывать куки для того, чтобы разработчики и администраторы могли легко перемещаться между сайтами. Получилась такая конструкция:
if (isset($_GET['reset'])) {
if ($_GET['reset'] == 1) {
setcookie("drd", "", -1, "/");
header('Location: site2.ru/?reset=2');
exit;
}else{
setcookie("drd", "", -1, "/");
header('Location: site2.ru/');
exit;
}
} else {
if (!isset($_COOKIE["drd"])) {
if (isset($_GET['drd'])) {
setcookie("drd", $_GET['drd'], time() + 2592000, "/");
header('Location: site2.ru/');
exit;
}
setcookie("drd", "site1.ru", time() + 2592000, "/");
header('Location: site2.ru/?drd=site1.ru');
exit;
} else {
$drd = $_COOKIE["drd"];
if ($drd != "site1.ru") {
header('Location: site2.ru/');
}
}
}
А теперь недостатки:
Параметры берутся напрямую из GET запроса и записываются в куки. Но сделать данный код более безопасным большого труда не составит.
Так же куки несложно подделать. Но если кто-то заморочится по этому поводу, пускай уже посмотрит на второй сайт, заслужил.
Хорошо бы это всё сделать методами класса или хотя бы функциями.
При сбое, во время перенаправления, возможно некорректная работа или зацикливание.
Если кто-то знаком с лучшими способами справиться с подобными задачами, буду рад услышать их в комментариях. Так же буду рад здравой кода, который был приведён выше.
Вопрос — куда вставлять этот код чтобы заработало!