Files
shd-desktop-app/README.md
T

2.3 KiB
Raw Blame History

SHD Desktop

Исходники настольного приложения SHD для Apple и Windows.

Папки

  • Apple/ — приложение macOS на Swift и WKWebView.
  • Windows/ — место для версии Windows.

Вход в macOS-приложении

Пункт «Учётная запись → Войти по passkey в системном браузере…» открывает страницу авторизации текущего контура в браузере по умолчанию (или в Safari, если браузер по умолчанию не поддерживает такой вход). После входа приложение принимает одноразовый код и отправляет его в WKWebView, чтобы сервер создал веб-сессию для выбранного контура.

Для работы сервер должен предоставить:

  1. GET /desktop-auth/authorize с параметрами client_id=shd-macos, redirect_uri=shd-auth://callback, response_type=code, state, code_challenge и code_challenge_method=S256. После обычного входа, включая passkey, сервер возвращает браузер на shd-auth://callback?code=…&state=….
  2. POST /desktop-auth/complete с полями code и code_verifier. Сервер проверяет одноразовый код и PKCE, создаёт веб-сессию, устанавливает защищённую cookie и перенаправляет WKWebView на SHD.

Код должен быть одноразовым, связанным с PKCE и действовать не более 60 секунд. Callback URI фиксирован в приложении. Маршрут завершения должен принимать только такой код и verifier; исключение CSRF-защиты допустимо только для этого маршрута при обязательной проверке кода и PKCE.

Сборка macOS-приложения

Из каталога Apple/ запустить ./Scripts/build-app.sh. Сборка создаёт проверенный архив Apple/dist/SHD-macOS-arm64.zip и не устанавливает приложение в /Applications.