Вход через VK ID

Проверка потока авторизации: обмен кода на токен выполняет сервер, не браузер.

Войти через 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_id54774722
redirect_urihttps://citia.ru/auth/callback
scopevkid.personal_info
PKCES256

redirect_uri должен совпадать с доверенным адресом в настройках приложения VK ID посимвольно, иначе платформа отклонит запрос.

Экспериментальный стенд Citia · порт 8099