Інтеграція Яндекс ID у мобільний додаток: OAuth 2.0 під ключ
Уявіть: користувач щойно встановив ваш додаток, відкриває екран входу та бачить кнопку «Увійти через Яндекс». Одне натискання — і він уже в системі. Але за лаштунками відбувається складний OAuth 2.0 танець: додаток повинен зареєструвати URL Scheme, коректно обробити redirect URI, отримати та верифікувати токен доступу. Будь-яка помилка — і користувач губиться в нескінченному циклі редиректів або отримує 401 з незрозумілим повідомленням. За 5+ років ми інтегрували Яндекс ID у 50+ проєктів для iOS та Android і знаємо кожну пастку. Розповімо про технічні деталі, які допоможуть уникнути типових помилок, заощадивши до 40% часу розробки.
Як інтегрувати Яндекс ID SDK на iOS?
Яндекс надає YandexLoginSDK для iOS (доступний через SPM та CocoaPods) та Android (Gradle). В особистому кабінеті розробника на oauth.yandex.ru створюємо додаток, вказуємо redirect URI, отримуємо client_id.
На iOS додаємо URL Scheme yx{client_id} у Info.plist. SDK відкриває авторизацію в SFSafariViewController (не залишає додаток, як при Custom Tabs на Android) — Яндекс не використовує нативний app-to-app flow на відміну від VK.
// iOS YandexLoginSDK.shared.set(clientID: "YOUR_CLIENT_ID") // Запуск авторизації try YandexLoginSDK.shared.authorize( with: self, // UIViewController customValues: nil ) // В AppDelegate/SceneDelegate — обробка redirect func application(_ app: UIApplication, open url: URL, options: [...]) -> Bool { return YandexLoginSDK.shared.handleOpen(url, sourceApplication: options[...]) } Після авторизації отримуємо token (OAuth2 access token). Для отримання даних користувача — запит до login.yandex.ru/info?format=json із заголовком Authorization: OAuth {token}. Відповідь містить id, login, default_email, real_name, default_avatar_id.
Аватар користувача: https://avatars.yandex.net/get-yapic/{default_avatar_id}/islands-200 — стандартний URL для отримання фото потрібного розміру.
Серверна верифікація токена: GET https://login.yandex.ru/info?oauth_token={token} — якщо токен валідний, повертає дані користувача. Це і є верифікація: невалідний токен поверне 401.
Чому нативний SDK безпечніший за WebView в 10 разів?
Нативна інтеграція через SDK забезпечує коректну роботу з OAuth2 flow, автоматичне керування сесією та вбудовану підтримку refresh токенів. WebView менш безпечний і може блокуватися браузерами. За даними OWASP, нативний SDK знижує ризик перехоплення токена на порядок — у 10 разів менше вразливостей, пов'язаних з XSS та міжсайтовими запитами.
| Підхід | Безпека | Підтримка refresh | Час інтеграції |
|---|---|---|---|
| Нативний SDK | Висока (OIDC) | Автоматична | 3-6 днів |
| WebView | Низька (XSS) | Ручна | від 5 днів |
| Ручний OAuth 2.0 | Середня | Потребує реалізації | від 7 днів |
Які дані відкриває Яндекс ID?
Стандартний запит до API повертає: унікальний id, логін, email (якщо дозволено), ім'я та аватар. Для отримання додаткових даних потрібен розширений scope (наприклад, login:phone). Важно: email не завжди обов'язковий — користувач може приховати його. При запиті великої кількості даних підвищується ймовірність відмови користувача — запитуйте лише те, що дійсно потрібно.
| Scope | Дані | Рівень доступу |
|---|---|---|
login:email |
email користувача | Базовий |
login:avatar |
аватар | Базовий |
login:phone |
номер телефону | Розширений |
Часта помилка — вимагати телефон без необхідності. Це збільшує відсоток відмов на 20-30%. Оптимально починати з мінімального набору та запитувати більше в міру використання.
Що входить у роботу з інтеграції Яндекс ID?
Ми виконуємо повний цикл:
- Налаштування SDK для iOS та Android (Swift/Kotlin) з урахуванням версій ОС та архітектури
- Конфігурація URL Scheme та redirect URI (включаючи підтримку Universal Links для iOS)
- Реалізація запиту токена та обробки відповіді (включаючи refresh-токен та збереження в Keychain)
- Серверна верифікація токенів на будь-якому бекенді (Node.js, PHP, Python, Ruby)
- Документація з інтеграції та підтримка 30 днів після здачі
Також ми допомагаємо з публікацією в магазинах: перевіряємо відповідність App Store Review Guidelines (особливо розділ 4.2 про мінімальну функціональність) та Google Play Policy.
Терміни: 3-6 робочих днів. Вартість розраховується індивідуально під ваш проєкт — ми оцінимо обсяг і складність. Зв'яжіться для консультації.
Як відбувається процес інтеграції?
- Аналіз: вивчаємо схему вашого додатку, визначаємо точки входу авторизації.
- Проектування: проектуємо OAuth2 flow з урахуванням особливостей Яндекс ID (JWT та OIDC).
- Реалізація: пишемо код на Swift та Kotlin, налаштовуємо SDK.
- Тестування: перевіряємо всі сценарії — успіх, відмова, помилки мережі, закінчення токена.
- Деплой: інтегруємо у вашу CI/CD, оновлюємо документацію.
Досвід команди
Наші інженери — сертифіковані iOS та Android розробники з 5+ років стажу. Виконали понад 100 проєктів з авторизацією, з яких 50+ — саме Яндекс ID. Гарантуємо дотримання вимог магазинів додатків. Отримайте консультацію вже сьогодні.







