livestreet-framework
livestreet-framework copied to clipboard
Предлагаю таки починить авторизацию на сайте livestreet.ru
Хоть как-то жило ведь сообщество...
У меня работает - только что авторизовался
У меня тоже не работает https://yadi.sk/d/f6SOQYhp16cSHA
Проблема все-таки существует. Я уже недели 3 не могу залогиниться. Раньше получалось с браузером Edge, но сейчас уже ни с каким браузером не получается. Это даже видно по активности на сайте.
Парадокс еще в том, что после попытки залогиниться на станице http://livestreet.ru/people/online/ юзер появляется как активный, но по факту нет логина.
Сейчас, каким-то чудом удалось залогиниться через Yandex браузер.
Возможно, проблема связана с тем, что сайт сообщества на http, а авторизация - на https
Приходиться долго долбиться и все-равно не всегда получается.
Возможно, проблема связана с тем, что сайт сообщества на http, а авторизация - на https
Тоже так думаю.
С прошлого года ещё не могу авторизоваться, после редиректа обратно на livestreet.ru входа не происходит.
Пока не починили авторизацию, залетайте на areadev.ru — сайт про различные интернет-сообщества и UGC-движки, автор пилит свой.
Странно, авторизовался с первого раза. Проверьте, не запрещает ли браузер писать куки на livestreet.ru и a.livestreet.ru , на обоих сайта должна быть кука авторизации после редиректа.
@Xmk а как это проверить? Пробовал в хроме и сафари на mac os, на айфоне в сафари — всё бесполезно.
@chiliec firefox через хром тоже не смог авторизоваться
Ну да, теперь специально для этого сайта отдельный браузер буду ставить 🐸
Вобщем выяснил наконец причину!
Дело в том, что начиная с 80-й версии chrome-based браузеров появилась защита от межсайстовой передачи куков (межсайтовых POST-запросов). А на LS сейчас именно такая система используется: passport.livestreetcms.com редиректит на livestreet.ru, передавая куки
"Вылечить" можно так:
- Заходим по адресу chrome://flags/#same-site-by-default-cookies
- Устанавливаем для свойства SameSite by default cookies значение Disabled
- Перезапускаем браузер и все работает
Иными славами для файлов (в т.ч. куков) добавлено новое свойство: 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]);
Или поставить примерно такую либу
Но это может сделать только Макс, если захочет ;)
В 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
Начиная с 94-й версии обещают, что даже через командную строку отключат