У меня есть несколько сайтов в одном домене (виртуальный хост):
website.com/site1
, website.com/site2
и т.п.
На каждом сайте есть аутентификация, которая сохраняет username
в Session
,
Проблема в:
Если я на site1
и, скажем, Алекс принял site2
из моего браузера site1 подумал бы, что я Алекс. И если я что-то сделаю, Алекс будет записан в БД.
Одним из решений является проверка того, Session
и username
одинаково на каждом действии.
Есть ли решение установить разные $_SESSION['name']
за site1
а также site2
, используя тот же $_SESSION['name']
переменная?
У меня есть ленивое решение, если это может сработать для вас.
В
Когда вы начинаете сеанс, это означает, что вы выполняете некоторые функции, а затем сохраняете их в базе данных, как
//SQL things and finally
$_SESSION['username'] = $username;
вы можете сделать это
$_SESSION['site1-username'] = $username;
Аналогично на другом сайте
$_SESSION['site2-username'] = $username;
Лучшее решение найдено:
JS каждые 5 секунд отправляет серверу имя пользователя. Сервер проверяет, равен ли он сеансу. Если нет, у пользователя запрашивается аутентификация.