На Laravel 5.5 + Apache + MariaDB у нас есть корпоративная система, которая разделяет аутентифицированных пользователей и публичных пользователей. Эти два URL находятся в одном домене с дополнительным поддоменом к нему. Каждый поддомен имеет отдельный экземпляр Laravel 5.5. Оба этих поддомена ДОЛЖНЫ иметь отдельный app_key, db_database и несколько других параметров из файла .env.
Теперь, если я открою оба этих субдомена в одном браузере на двух разных вкладках, одна из них обязательно выйдет из строя и выдаст whoops unserialize (): ошибка со смещением 0 из 40 байтов
Причина в том, что переменные .env переходят в суперглобальный PHP и XSRF-TOKEN, где имена файлов cookie конфликтуют.
- Я пытался использовать разные переменные env, но все равно не получилось.
- Tried Session.php -
"same_site" => "strict"
, Не повезло
- Публичный сайт не может отключить X-CSRF
- Пытался переименовать имена файлов cookie в laravel, не повезло.
php artisan key:generate
- Попробовал, на другом поддомене происходит сбой при сбое шифрования.
VerifyCsrfToken.php
исключить не будет работать, потому что ядро laravel загружает EncryptCookies::class
сначала и VerifyCsrfToken::class
позже
- Эта проблема не существует на
php artisan serve
, потому что логически, для поддоменов мы запускаем два экземпляра ремесленника, они никогда не конфликтуют
ОБНОВЛЕНИЕ: Перед тем, как отмечать дубликаты и публиковать URL-адреса, просьба прочитать вопрос. Я не думаю, что у меня остался непрочитанный URL. :):)