Это просто. Когда вы получаете входящий запрос, вы можете сравнить имя активного хранилища сеансов с именем входящего хранилища. Если они различаются, необходимо закрыть сеанс и повторно открыть его для нового магазина.
Поскольку ваше приложение выдает по одному ключу cookie для всех магазинов, любые открытые вкладки браузера будут делиться этим, поэтому вам необходимо закрывать / открывать соединения на основе информации, поступающей с вкладки.
Обратите внимание, что когда вы закрываете один сеанс, это означает, что когда вы снова используете вкладку с этим теперь закрытым сеансом, вы будете проходить повторную аутентификацию. Это означает, что ваш клиент может отправлять или не отправлять имя магазина (особенно если в представлениях вашего приложения есть вызовы XHR без названия магазина в качестве параметра). Так что будьте осторожны там. Это может быть сложно справиться хорошо.