Как разрешить конфликты в открытых магазинах - PullRequest
0 голосов
/ 02 ноября 2018

Я создал простое встроенное общедоступное приложение в shopify, используя узел js для тестирования. Работает нормально. в то время как я открыл два магазина в другой вкладке одного и того же браузера. Я столкнулся с проблемой столкновения сессии. Например, доменные магазины store1.myshopify.com и store2.myshopify.com были открыты в одном браузере Chrome. Сначала я открыл store1, он работал правильно. Затем я открыл магазин 2, он изменил значения сеанса приложения store1. Теперь в обоих магазинах приложение отображает запись store2. Я не знаю, как справиться с этим. Пожалуйста, объясните мне, как решить эту проблему.

1 Ответ

0 голосов
/ 02 ноября 2018

Это просто. Когда вы получаете входящий запрос, вы можете сравнить имя активного хранилища сеансов с именем входящего хранилища. Если они различаются, необходимо закрыть сеанс и повторно открыть его для нового магазина.

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

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

...