Розробка авторизації через Odnoklassniki
Авторизація через Odnoklassniki (OK.ru) — OAuth2 поверх proprietary API. Аудиторія OK специфічна: 35+ років, активно використовує мобільне приложення OK. Якщо ваш продукт орієнтований на цю демографію або інтегрується з соціальною мережею (ігри, конкурси, UGC) — інтеграція виправдана.
SDK та налаштування
OK надає OKiOS SDK (CocoaPods: pod 'OKiOS') та OK Android SDK (Gradle: implementation 'ru.ok.android:sdk:latest'). SDK організований подібно до VK: при наявності приложення OK на пристрої — авторизація через нього без введення пароля, без нього — браузерний OAuth2.
Реєстрація приложення на apiok.ru, отримуємо application_id, application_key, application_secret_key. Три ключі — типова плутанина. application_key використовується при підписуванні запитів до API, application_secret_key — серверний, ніколи в клієнті.
На iOS URL Scheme: ok{application_id}. В AppDelegate — [OKSDK handleOpenURL:url].
Після авторизації отримуємо access_token та refresh_token. Токени OK мають обмежену TTL (зазвичай 30 днів), refresh обов'язковий.
Запити до OK API
Особливість OK API — обов'язкове підписування запитів. Параметри запиту сортуються alfabetically, конкатенуються, до рядка додається MD5 від access_token + application_secret_key, потім MD5 від всього рядка. Без правильної підписи — помилка PARAM_SIGNATURE_INVALID.
sig = MD5( sorted_params_string + MD5(access_token + application_secret_key) )
Ця логіка — на серверній стороні. Мобільний клієнт передає access_token на backend, backend робить підписані запити до OK API.
Метод для профіля: users.getCurrentUser з полями name,pic_3,email. Email в OK — необов'язкове поле, користувач міг його не вказувати.
Серверна верифікація токена: users.getLoggedInUser?access_token={token} — повертає uid користувача якщо токен валідний.
Терміни: 3–6 робочих днів. Нестандартна підпис API дещо усліджує серверну частину порівняно з класичними OAuth2 провайдерами.







