Друзья, товарисчи!
Уже недели 3-4 на этот сайт практически невозможно залогиниться.
Сейчас каким-то чудом залогинился через Yandex браузер. Пользуясь случаем, пишу этот топик.
Большая просьба ко всем — у кого есть проблемы с логином, отпишитесь pls в
этом тикете
Upd (23.06.2021)
В Chrome v91 убрали флаг
same-site-by-default-cookies
Но можно запустить Chrome с командной строки.
Для Win10:
"C:\Program Files\Google\Chrome\Application\chrome.exe" --disable-features=SameSiteByDefaultCookies
Для OSX:
/Applications/Google Chrome.app/Contents/MacOS/Google Chrome --disable-features=SameSiteByDefaultCookies
Upd (25.02.2021)
Вобщем выяснил наконец причину!
Дело в том, что начиная с 80-й версии chrome-based браузеров появилась
защита от межсайстовой передачи куков (межсайтовых POST-запросов). А на LS сейчас именно такая система используется:
passport.livestreetcms.com редиректит на
livestreet.ru, передавая куки
«Вылечить» можно так:
1. Заходим по адресу
chrome://flags/#same-site-by-default-cookies
2. Устанавливаем для свойства
SameSite by default cookies значение
Disabled
3. Перезапускаем браузер и все работает
Иными славами для файлов (в т.ч. куков) добавлено новое свойство:
SameSite. У которого возможно 3 значения:
—
SameSite=Strict — куки передаются только в пределах одного сайта
—
SameSite=Lax (именно такое значение задается кукам по дефолту, если оно не задано явно) — куки передаются между сайтами только в пределах одного домена
—
SameSite=None — ограничения на передачу куков отсутствуют
Подробнее
здесь и
здесь.
Глобально решить проблему можно, задав для куков авторизации свойство SameSite со значением None (SameSite=None; Secure). И при этом необходимо чтобы и livestreet.ru также был на https.
Сделать это можно примерно так:
Для php < 7.3 (через установку заголовков):
header('Set-Cookie: cross-site-cookie=name; SameSite=None; Secure');
Для php ≥ 7.3:
setcookie('cross-site-cookie', 'name', ['samesite' => 'None', 'secure' => true]);
Или поставить примерно
такую либу.
Но это может сделать только Макс, если захочет ;)
Решение — кросс-пост с
тикета на github