Create SHD desktop app repository
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
# 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`.
|
||||
Reference in New Issue
Block a user