Проверка потока авторизации: обмен кода на токен выполняет сервер, не браузер.
Войти через VK ID Виджеты SDK
Приложение настроено: app_id 54774722
браузер → VK ID (окно входа)
VK ID → браузер: code + device_id
браузер → наш сервер: /auth/callback
наш сервер → VK ID: обмен кода на токен здесь, а не в JS
сервер → браузер: только результат, без токена
SDK @vkid/sdk умеет обменивать код прямо в браузере — он публичный
клиент и работает без client_secret. Для Citia так нельзя: токен
в JavaScript доступен любому стороннему скрипту на странице. Поэтому
code_verifier остаётся на сервере, и обмен делает он.
| app_id | 54774722 |
|---|---|
| redirect_uri | https://citia.ru/auth/callback |
| scope | vkid.personal_info |
| PKCE | S256 |
redirect_uri должен совпадать с доверенным адресом в настройках
приложения VK ID посимвольно, иначе платформа отклонит запрос.
Экспериментальный стенд Citia · порт 8099