Розробка авторизації через 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, серверну верифікацію.







