Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
lifecom opened this issue Dec 17, 2020 · 12 comments

Comments

@lifecom
Copy link

lifecom commented Dec 17, 2020

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

@mzhelskiy
Copy link
Contributor

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

@prokopov-nikolai
Copy link
Contributor

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

@lifecom
Copy link
Author

lifecom commented Dec 18, 2020

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

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

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

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

@sersar
Copy link

sersar commented Dec 20, 2020

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

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

@chiliec
Copy link
Contributor

chiliec commented Feb 13, 2021

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

@chiliec
Copy link
Contributor

chiliec commented Feb 17, 2021

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

@Xmk
Copy link
Contributor

Xmk commented Feb 19, 2021

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

@chiliec
Copy link
Contributor

chiliec commented Feb 19, 2021

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

@Xmk
Copy link
Contributor

Xmk commented Feb 19, 2021

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

@chiliec
Copy link
Contributor

chiliec commented Feb 19, 2021

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

@lifecom
Copy link
Author

lifecom commented Feb 25, 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]);

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

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

@lifecom
Copy link
Author

lifecom commented Jun 23, 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

Начиная с 94-й версии обещают, что даже через командную строку отключат

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants