Skip to content

Браузерное расширение для бесшовной авторизации и локальный API авторизации #35

@Scream034

Description

@Scream034

Какую проблему решит эта фича?

Сейчас авторизация в LMP требует от пользователя ручного копирования cookie-заголовков через инструменты разработчика (F12) или сторонние экспортеры куков. Это сложный процесс (UX bottleneck), вызывающий трудности у обычных пользователей и часто приводящий к копированию лишних конфиденциальных данных.

Описание предлагаемого решения

Предлагается разработать легковесное браузерное расширение (совместимое с Chrome, Edge, Brave, Opera, Firefox) под Manifest V3, которое будет автоматизировать передачу авторизационных куков в LMP.

Архитектура решения состоит из двух частей:

  1. Локальный Web-сервер в LMP (Receiver):

    • Внутри CookieAuthService (или в виде фонового hosted-сервиса) при открытии окна авторизации запускается микро-сервер на базе System.Net.HttpListener (например, на локальном порту 127.0.0.1:40340).
    • API слушает только один эндпоинт: POST /api/auth.
    • Сервер должен обязательно поддерживать CORS для ответов расширению и проверять происхождение запроса (Origin) или использовать простой динамический токен безопасности, генерируемый LMP.
  2. Браузерное расширение (Manifest V3 Sender):

    • При нажатии на кнопку расширения на вкладке YouTube/YouTube Music оно запрашивает доступ к chrome.cookies для домена .youtube.com.
    • Расширение извлекает исключительно критически важные для плеера куки: SAPISID, SID, HSID, SSID, APISID, __Secure-1PSID, __Secure-3PSID, __Secure-1PSIDTS (минимизация доступа к личным данным).
    • Формирует JSON и отправляет его на POST http://127.0.0.1:40340/api/auth.
    • В случае успеха сообщает пользователю: «Авторизация в LMP выполнена!».

Альтернативный (клипборд) вариант:

Если порт заблокирован брандмауэром, расширение просто форматирует валидный заголовок в буфер обмена, а LMP при активации окна парсит буфер на лету и предлагает войти в один клик.

Безопасность и приватность (Security Concerns)

  • Минимизация данных: Расширение не должно иметь доступа к паролям, истории или другим сайтам. Только куки YouTube Music.
  • Локальный листенер: HttpListener должен биндиться строго на 127.0.0.1 / localhost (не на 0.0.0.0), чтобы закрыть доступ из внешней сети.
  • Автовыключение: Локальный сервер LMP должен работать только тогда, когда открыто окно авторизации, и выключаться сразу после успешного получения токенов или закрытия окна.

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions