SHD Desktop
Исходники настольного приложения SHD для Apple и Windows.
Папки
Apple/— приложение macOS на Swift и WKWebView.Windows/— место для версии Windows.
Вход в macOS-приложении
Пункт «Учётная запись → Войти по passkey в системном браузере…» открывает страницу авторизации текущего контура в браузере по умолчанию (или в Safari, если браузер по умолчанию не поддерживает такой вход). После входа приложение принимает одноразовый код и отправляет его в WKWebView, чтобы сервер создал веб-сессию для выбранного контура.
Для работы сервер должен предоставить:
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=….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.