Это не представляется возможным. Сеть не имеет гражданства: каждый запрос представляет собой уникальную снежинку, не затрагиваемую каким-либо другим запросом, сделанным до или после. Однако, поскольку логически какое-то состояние должно существовать для таких вещей, как аутентификация, сеансы были созданы, чтобы в основном подделывать чувство государства.
Для работы сеансы имеют серверный и клиентский компоненты. На сервере используется некоторый уровень персистентности для хранения связанных с пользователем данных, привязанных к токену, который однозначно идентифицирует конкретный сеанс. На клиенте cookie устанавливается с этим маркером. Когда клиент делает другой запрос, все куки-файлы, принадлежащие определенному домену в игре, отправляются вместе с запросом обратно на сервер, который содержит файл cookie с токеном сеанса, если он существует. Как только сервер увидит этот файл cookie в запросе, он использует токен для поиска сеанса с уровня персистентности и восстановления состояния, которое пользователь использовал во время предыдущего запроса.
Дело в том, что этот процесс немой. Клиент слепо отправляет любые файлы cookie, которые сервер устанавливает на сервер с каждым запросом. И, если сервер получает куки-файл с маркером сеанса, который он распознает, он слепо восстанавливает состояние. Нет никакого мнения о том, сколько вкладок в игре или даже содержание содержимого файла cookie (клиент не знает и не заботится о том, чтобы cookie использовался для управления сеансом, проверки подлинности и т. Д.).
Длинный и короткий, вы ничего не можете сделать, чтобы заставить сеанс за вкладку или окно. На стороне клиента вы можете открыть другой браузер (в котором не было бы cookie, содержащего токен сеанса) или использовать что-то вроде режима инкогнито Chrome (который создает изолированный просмотр в браузере без каких-либо ранее установленных файлов cookie). Тем не менее, это выбор, который делает пользователь, а не веб-сайт.
Я думаю, вы забыли вспомнить, что Интернет по своей природе не имеет гражданства и не имеет представления о вкладах. Почему вы хотите иметь отдельный сеанс за вкладку? – mason
Ну. Мне нужна функциональность, похожая на gmail «Войти с другой учетной записью». Возможно ли реализовать что-то подобное? – jgarciad
Уверен, что это возможно. Очевидно, Gmail это сделал. Но это не создает другую сессию. – mason