Разработка авторизации через VK ID
VK ID — актуальная замена устаревшему VK SDK для авторизации. ВКонтакте перезапустил авторизацию в 2023-2024 годах: новый SDK с поддержкой OneTab (авторизация через приложение ВКонтакте без ввода пароля), улучшенный PKCE flow, отдельная документация для мобильных платформ. Старый VKSdk deprecated, хотя некоторые проекты до сих пор на нём.
Актуальный SDK: VKID
Новый SDK называется VKID (не путать со старым VKSdk). Для iOS — Swift Package: https://github.com/VKCOM/vkid-ios-sdk. Для Android — Gradle: implementation "com.vk.id:vkid:latest".
Основное UX-преимущество нового SDK: если на устройстве установлено приложение ВКонтакте, авторизация происходит через него одним тапом без ввода логина и пароля — «OneTab» авторизация. Без приложения ВКонтакте — OAuth2 PKCE в браузере.
Настройка: в личном кабинете VK для разработчиков создаём приложение, получаем client_id. На iOS добавляем URL Scheme vk{client_id} для обработки redirect. На Android — Intent Filter на vk{client_id}://vk.com/blank.html.
// iOS
let vkid = VKID(config: .init(appCredentials: .init(clientId: "YOUR_CLIENT_ID", clientSecret: "YOUR_CLIENT_SECRET")))
let sheet = OneTapBottomSheet(
serviceName: "MyApp",
targetActionText: .signIn,
oneTapButton: .init(
height: .medium(),
cornerRadius: 8
)
)
// Отображаем через UISheetPresentationController
После авторизации получаем accessToken и userId. Для получения данных профиля — запрос к VK API: users.get с полями photo_200,screen_name. Верификация токена на сервере через secure.checkToken метод API.
Ключевая деталь: VK ID токены имеют TTL, нужен refresh-механизм. Новый VKID SDK управляет refresh автоматически при правильной настройке.
Сроки: 4-7 рабочих дней. Включает интеграцию нового VKID SDK, обработку OneTab и браузерного flow, серверную верификацию.







