livestreet-framework icon indicating copy to clipboard operation
livestreet-framework copied to clipboard

Предлагаю таки починить авторизацию на сайте livestreet.ru

Open lifecom opened this issue 4 years ago • 12 comments

Хоть как-то жило ведь сообщество...

lifecom avatar Dec 17 '20 14:12 lifecom

У меня работает - только что авторизовался

mzhelskiy avatar Dec 18 '20 00:12 mzhelskiy

У меня тоже не работает https://yadi.sk/d/f6SOQYhp16cSHA

prokopov-nikolai avatar Dec 18 '20 11:12 prokopov-nikolai

Проблема все-таки существует. Я уже недели 3 не могу залогиниться. Раньше получалось с браузером Edge, но сейчас уже ни с каким браузером не получается. Это даже видно по активности на сайте.

Парадокс еще в том, что после попытки залогиниться на станице http://livestreet.ru/people/online/ юзер появляется как активный, но по факту нет логина.

Сейчас, каким-то чудом удалось залогиниться через Yandex браузер.

Возможно, проблема связана с тем, что сайт сообщества на http, а авторизация - на https

lifecom avatar Dec 18 '20 17:12 lifecom

Приходиться долго долбиться и все-равно не всегда получается.

Возможно, проблема связана с тем, что сайт сообщества на http, а авторизация - на https Тоже так думаю.

sersar avatar Dec 20 '20 18:12 sersar

С прошлого года ещё не могу авторизоваться, после редиректа обратно на livestreet.ru входа не происходит.

chiliec avatar Feb 13 '21 13:02 chiliec

Пока не починили авторизацию, залетайте на areadev.ru — сайт про различные интернет-сообщества и UGC-движки, автор пилит свой.

chiliec avatar Feb 17 '21 11:02 chiliec

Странно, авторизовался с первого раза. Проверьте, не запрещает ли браузер писать куки на livestreet.ru и a.livestreet.ru , на обоих сайта должна быть кука авторизации после редиректа.

Xmk avatar Feb 19 '21 15:02 Xmk

@Xmk а как это проверить? Пробовал в хроме и сафари на mac os, на айфоне в сафари — всё бесполезно.

chiliec avatar Feb 19 '21 16:02 chiliec

@chiliec firefox через хром тоже не смог авторизоваться

Xmk avatar Feb 19 '21 18:02 Xmk

Ну да, теперь специально для этого сайта отдельный браузер буду ставить 🐸

chiliec avatar Feb 19 '21 18:02 chiliec

Вобщем выяснил наконец причину!

Дело в том, что начиная с 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]);

Или поставить примерно такую либу

Но это может сделать только Макс, если захочет ;)

lifecom avatar Feb 25 '21 14:02 lifecom

В 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-й версии обещают, что даже через командную строку отключат

lifecom avatar Jun 23 '21 11:06 lifecom