SHD Desktop

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

Папки

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

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

Клик по существующей кнопке passkey на странице входа в WKWebView перехватывается приложением и открывает тот же DEV-сайт в системном браузере. После входа callback возвращает код в приложение, а WKWebView отправляет его серверу и получает веб-сессию. Вход в приложении пока включён только для DEV, где серверный поток уже развёрнут.

Серверный поток развёрнут на DEV. Клиент использует такой контракт:

  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.

S
Description
No description provided
Readme
2.4 MiB
Languages
C# 50.6%
Swift 43.2%
PowerShell 4.5%
Shell 1.7%