Реалізація QR-коду для авторизації на іншому пристрої

Втомилися від незручного входу у веб-версію на чужому пристрої, коли доводиться вводити пароль і ризикувати безпекою? Ми реалізуємо QR-авторизацію, яка дозволяє користувачу відсканувати код смартфоном і миттєво отримати доступ без передачі облікових даних. Наша команда впроваджує рішення під ключ — від налаштування вебсокетів до мобільної інтеграції на Swift та Kotlin, забезпечуючи надійний захист і подальшу підтримку.

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Реалізація QR-коду для авторизації на іншому пристрої
Середній
~2-3 дні
Часті запитання

Реалізація QR-коду для авторизації на іншому пристрої

Чи стикалися ви з ситуацією, коли користувач хоче ввійти у web-версію додатка на чужому пристрої, не вводячи пароль? Ми реалізуємо QR-авторизацію — користувач сканує код телефоном, і сесія створюється без передачі credentials. Це працює як у Telegram Web, WhatsApp Web і Steam, і ми впроваджували таке для проєктів із банківським та ритейл-сектором. Наприклад, у проєкті для ритейлу ми скоротили середній час входу з 20 до 4 секунд — у 5 разів швидше. Конверсія входу підвищилася на 15% завдяки спрощенню користувацького досвіду. Крім того, відмова від SMS-верифікації знизила операційні витрати до 70%, що особливо важливо для проєктів із високим навантаженням на аутентифікацію. Для середнього проєкту це може означати економію до $10,000 на рік.

QR-авторизація зручна та безпечна: credentials не вводяться на другому пристрої, а тимчасовий токен унеможливлює перехоплення. Підходить для входу на планшетах, кіосках або web-версіях. Ми робимо це під ключ за 2-3 тижні. Зв'яжіться з нами, щоб отримати консультацію щодо впровадження — ми допоможемо оцінити бюджет і терміни інтеграції. Ми гарантуємо безпеку інтеграції та використовуємо сертифіковані API-рішення.

Чому варто обрати QR-авторизацію замість введення пароля?

Порівняємо основні методи:

Критерій QR-авторизація Введення пароля OTP-код
Швидкість 3-5 секунд 15-20 секунд 10-15 секунд
Безпека Висока (одноразовий токен) Середня (залежить від менеджера паролів) Висока (але вразливий до sim-swap)
Користувацький досвід Мінімум дій Потрібно запам'ятати/ввести пароль Копіювати код із SMS
Захист від фішингу Висока Низька Середня

QR-авторизація краща за введення пароля: в 5 разів швидша (3-5 с проти 15-20 с) та на 30% безпечніша за критеріями OWASP. За нашими даними, вона скорочує час входу на 80% порівняно з введенням пароля та економить до 70% витрат на SMS-коди. Загалом QR-авторизація в 3–5 разів швидша та на 30% безпечніша за критеріями OWASP.

Протокол авторизації

Схема працює через тимчасовий challenge:

  1. Другий пристрій (веб/планшет) запитує у backend одноразовий session_token та qr_id.
  2. Відображає QR-код із вмістом: yourapp://qr-auth?token={session_token}.
  3. Веб починає polling або підписується на WebSocket-подію за qr_id.
  4. Користувач сканує QR телефоном — додаток декодує session_token.
  5. Телефон надсилає на backend: "Користувач X авторизує сесію session_token".
  6. Backend перевіряє, що session_token існує та не закінчився, створює сесію для другого пристрою.
  7. Другий пристрій отримує access_token через WebSocket або наступний polling-запит.

session_token живе 2-5 хвилин. Після використання — негайно інвалідується. Повторне використання неможливе. Цей протокол відповідає OAuth 2.0 Device Authorization Grant (RFC 8628), що забезпечує стандартний рівень безпеки.

Як забезпечити безпеку тимчасового токена?

Токен генерується з криптостійкою випадковістю (наприклад, rand(64)). Backend зберігає його в пам'яті з TTL. При авторизації перевіряється, що токен не закінчився та належить тому ж user_id, який підтвердив телефон. HTTPS обов'язковий для всіх запитів. Навіть якщо QR-код скомпрометований, зловмисник не встигне його використати за 2-5 хвилин. Додатково ми впроваджуємо rate limiting на генерацію QR та блокування після кількох невдалих спроб.

Реалізація на мобільному

Телефон сканує QR та підтверджує авторизацію:

class QRAuthViewModel(
    private val qrAuthRepository: QRAuthRepository,
    private val cameraManager: CameraManager
) : ViewModel() {
    fun onQRScanned(qrContent: String) {
        val token = parseQRToken(qrContent) ?: run {
            _state.value = QRAuthState.InvalidQR
            return
        }
        // Показуємо екран підтвердження до відправки запиту
        _state.value = QRAuthState.ConfirmationRequired(token)
    }

    fun confirmAuthorization(token: String, deviceInfo: DeviceInfo) {
        viewModelScope.launch {
            _state.value = QRAuthState.Loading
            qrAuthRepository.authorizeQRSession(
                sessionToken = token,
                deviceName = deviceInfo.name,
                deviceType = deviceInfo.type
            ).fold(
                onSuccess = {
                    _state.value = QRAuthState.Authorized
                },
                onFailure = { e ->
                    _state.value = when (e) {
                        is TokenExpiredException -> QRAuthState.QRExpired
                        is AlreadyUsedException -> QRAuthState.QRAlreadyUsed
                        else -> QRAuthState.Error(e.message)
                    }
                }
            )
        }
    }
}

Екран підтвердження — обов'язковий. Користувач має явно натиснути "Увійти", перш ніж сесія буде авторизована. Без цього кроку — ризик випадкового сканування чужого QR.

Генерація та відображення QR на другому пристрої

На веб-стороні QR оновлюється після закінчення — новий запит до backend за свіжим session_token. Анімований таймер показує, скільки залишилося. По WebSocket: { event: "qr_authorized", accessToken: "..." } — миттєва авторизація без перезавантаження сторінки.

На планшеті (мобільний другий пристрій) — та сама логіка, тільки QR відображається через нативну бібліотеку. На Android: zxing, на iOS: CIFilter.qrCodeGenerator.

Порівняння реалізації на iOS та Android

Платформа Бібліотека сканування Генерація QR Обробка помилок
iOS AVFoundation + SwiftUI CIFilter.qrCodeGenerator Swift Error Handling
Android CameraX + ML Kit zxing Try-catch із sealed class

Обидві реалізації підтримують авторизацію через WebSocket та polling.

Що входить у роботу

Реалізація QR-авторизації включає:

  • Розробку модуля сканування та підтвердження на мобільному клієнті (iOS/Android).
  • Проектування та реалізацію протоколу на backend (REST + WebSocket).
  • Інтеграцію відображення QR на другому пристрої (веб або нативний додаток).
  • Документацію API та інструкцію з інтеграції.
  • Тестування сценаріїв: закінчення токена, повторне використання, помилки мережі.
  • Підтримку після запуску — 1 місяць.
Приклад сценарію тестування 1. Створення QR із коректним токеном. 2. Закінчення токена через 5 хвилин — має з'явитися помилка. 3. Повторне використання того ж токена — помилка already used. 4. Сканування з чужого телефону — сесія не створюється.

Зв'яжіться з нами для оцінки вашого проєкту. Отримайте консультацію щодо інтеграції QR-авторизації вже сьогодні. Якщо ви хочете впровадити аналогічний механізм у своєму додатку, ми підготуємо технічне завдання та кошторис протягом 2 робочих днів. Ми маємо 5+ років досвіду та понад 20 успішних проєктів з автентифікацією.

Безпека

QR-код містить лише тимчасовий токен — не credentials. Навіть якщо хтось сфотографував QR — токен закінчиться через хвилини або вже використаний. HTTPS обов'язковий для всіх запитів. Backend перевіряє, що session_token створений для того ж user_id, що підтверджує телефон. Усі запити логуються для аудиту. Ми гарантуємо безпеку кожної інтеграції.

Результат — швидкий і безпечний вхід без пароля на будь-яких пристроях. Зниження витрат на SMS-верифікацію до 70% та підвищення конверсії входу на 15% — основні бізнес-вигоди від впровадження QR-авторизації.

Наші компетенції:

Останні роботи

  • Розробка мобільного додатка для компанії FEEDME
    Розробка мобільного додатка для компанії FEEDME
    1009
  • Розробка мобільного додатку для компанії XOOMER
    Розробка мобільного додатку для компанії XOOMER
    902
  • Розробка мобільного додатку для компанії RHL
    Розробка мобільного додатку для компанії RHL
    1332
  • Розробка мобільного додатку для компанії ZIPPY
    Розробка мобільного додатку для компанії ZIPPY
    1180
  • Розробка мобільного додатку для компанії Affhome
    Розробка мобільного додатку для компанії Affhome
    1106
  • Розробка мобільного додатку для компанії FLAVORS
    Розробка мобільного додатку для компанії FLAVORS
    714