Подробная причина :
Вот часть конфигурации по умолчанию динамических параметров прокси-серверов Engintron c.
# CMS (& CMS extension) specific cookies (e.g. Joomla, K2 for Joomla, WordPress, WooCommerce, PrestaShop etc.)
if ($http_cookie ~* "(joomla_[a-zA-Z0-9_]+|userID|wordpress_(?!test_)[a-zA-Z0-9_]+|wp-postpass|comment_author_[a-zA-Z0-9_]+|woocommerce_cart_hash|woocommerce_items_in_cart|wp_woocommerce_session_[a-zA-Z0-9]+|sid_customer_|sid_admin_|PrestaShop-[a-zA-Z0-9]+)") {
set $CACHE_BYPASS_FOR_DYNAMIC 1;
set $EXPIRES_FOR_DYNAMIC 0;
}
Что здесь происходит то, что Engintron будет микрокешировать любого повара ie, который не похож на:
joomla_[a-zA-Z0-9_]+|userID|wordpress_(?!test_)[a-zA-Z0-9_]+|wp-postpass|comment_author_[a-zA-Z0-9_]+|woocommerce_cart_hash|woocommerce_items_in_cart|wp_woocommerce_session_[a-zA-Z0-9]+|sid_customer_|sid_admin_|PrestaShop-[a-zA-Z0-9]+
Обратите внимание, что laravel_session
там нигде нет. Поэтому Engintron будет микрокешировать любой laravel сеанс Cook ie, и в этих конфигурациях вы могли бы разрешить пользователю ошибочно входить в другую учетную запись.
Решение:
Существует два способы решить это. Вы можете настроить конфигурации на своем сервере или в своем приложении.
A) В пределах Laravel:
Изменить конфигурацию / сеанс. php строка 127 с:
'cookie' => env(
'SESSION_COOKIE',
Str::slug(env('APP_NAME', 'laravel'), '_').'_session'
),
до
'cookie' => 'userID',
B) На сервере:
Или просто добавьте laravel_session
или как вы называете файлы cookie своего приложения в списке указанных c файлов cookie, например, так :
if ($http_cookie ~* "(laravel_session|joomla_[a-zA-Z0-9_]+|userID|wordpress_(?!test_)[a-zA-Z0-9_]+|wp-postpass|comment_author_[a-zA-Z0-9_]+|woocommerce_cart_hash|woocommerce_items_in_cart|wp_woocommerce_session_[a-zA-Z0-9]+|sid_customer_|sid_admin_|PrestaShop-[a-zA-Z0-9]+)") {
set $CACHE_BYPASS_FOR_DYNAMIC 1;
set $EXPIRES_FOR_DYNAMIC 0;
}
Надеюсь, это кому-нибудь поможет:)
Удачного кодирования!