Route passkey button through browser auth

This commit is contained in:
bulava92
2026-10-28 15:39:27 +03:00
parent 4bc1a9a213
commit 1556470bcb
3 changed files with 58 additions and 18 deletions
+2 -2
View File
@@ -9,9 +9,9 @@
## Вход в macOS-приложении
Пункт **«Учётная запись → Войти по passkey в системном браузере…»** открывает страницу авторизации текущего контура в браузере по умолчанию (или в Safari, если браузер по умолчанию не поддерживает такой вход). После входа приложение принимает одноразовый код и отправляет его в WKWebView, чтобы сервер создал веб-сессию для выбранного контура.
Клик по существующей кнопке 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.