Authorization via Odnoklassniki in a mobile app

Users leave if logging into the app takes too long. We set up turnkey Odnoklassniki authorization: from scenario audit to handover to support. We shorten the path to the first screen and reduce login drop-off.

Development and support of all types of mobile applications:

Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Our competencies:

Frequently Asked Questions

Latest works

  • Development of a mobile application for FEEDME
    Development of a mobile application for FEEDME
    971
  • Development of a mobile application for XOOMER
    Development of a mobile application for XOOMER
    869
  • Development of a mobile application for RHL
    Development of a mobile application for RHL
    1289
  • Development of a mobile application for ZIPPY
    Development of a mobile application for ZIPPY
    1143
  • Development of a mobile application for Affhome
    Development of a mobile application for Affhome
    1076
  • Development of a mobile application for the FLAVORS company
    Development of a mobile application for the FLAVORS company
    677

Authorization via Odnoklassniki in a mobile app

Social login in a mobile app rarely breaks on the request itself — it breaks on the return. A person goes off to confirm access in the social network's app or in a browser, and comes back no longer to the same screen state from which they started.

The process could have been unloaded in the background: the screen was recreated from scratch, and the received authorization result simply has nowhere to be applied.

Hence the second common defect — session reset on return. If access confirmation lives only in the memory of the current screen and not in the device's secure storage, after minimizing it disappears, and the app shows the login form again. To the user this looks like a non-working button: they confirmed access, but login never completed.

Then the loss count kicks in — abandoned registration. A completed form, a selected plan, an assembled cart are reset along with the session, and the person leaves halfway without finishing.

The more steps after login, the more expensive each extra return: people don't argue with an app, they just close it.

We examine how this is closed in practice: where to store state between transitions, what to do on relaunch, how to return a person to exactly the step where they stopped.

Below — how mobile app login via a social network is structured so that it drives to completion instead of losing users halfway.

What social login gives: conversion and fewer drop-offs

Share of completed registrations

With native login via Odnoklassniki, the user confirms access in the already installed social network app rather than filling out a form with phone, email, and code.

Each step of manual input is a point where some people drop off; here there is one step, so the share of completed registrations grows, and half-completed profiles stop accumulating in the database.

App login time

Confirmation returns to the app directly, without bouncing to a browser and re-entering a password. Re-login within an active session is one tap, and app login time is measured in seconds instead of a minute and a half for a form. The user gets into the product at the moment they wanted to do something.

Fewer support requests about login

The lion's share of first-line tickets are "the code doesn't arrive," "I don't remember my password," "the email went to spam." When identity is confirmed by the social network, these scenarios simply do not exist inside the app: there is no code that failed to arrive and no password that was forgotten. Login-related support requests fall along with the number of repeated login attempts.

A class of drop-offs that is closed by mechanics

Previously, some people reached confirmation and did not return: email not opened, code not entered, session expired. Return after confirmation is the most expensive loss because the user was already ready to register.

With native confirmation, the return happens automatically, and this class of drop-offs is removed at the level of mechanics, not reminders.

Login methods: comparing connection options

The choice of login method determines where the session lives, what the user sees on rejection, and how much code will have to be rewritten when changing platforms.

For authorization via Odnoklassniki, the options coexist in one app, but only one is made primary: mixing identifiers produces duplicate accounts that are later merged manually.

Option When it fits Limitations
Built-in login Main scenario in a native app: the confirmation screen opens on top, session data returns directly to the app Requires publication in stores and separate settings for each platform; when permissions are revoked, access must be rechecked
Login via web page Web version of the service, test builds, desktop login Return to the app depends on following a link; some users are lost when third-party windows are blocked
Login by phone number Audience without an active social network profile, re-login, backup channel Requires a code delivery channel and protection against brute force; linking a number to an account requires a separate confirmation step
Single sign-on Multiple apps or sections under one account, shared subscription One failure in the login chain blocks all services; a common session management loop and sign-out from all at once are needed

In practice, the scheme is built as "primary method plus backup": built-in login for the majority, phone number when the social network profile is unavailable. Each login is assigned a source in the profile so that analytics shows exactly where users are lost.

Implementation stages: from audit to handover to support

Implementation of login via Odnoklassniki begins with an audit, not with code: we examine how app login is currently structured, where the session is stored, and what happens when a user revokes access on their side.

This finds places where external login conflicts with current logic — profile linking by phone, account merging, access recovery.

Work order

  1. Login scenario audit — we collect existing login methods, profile creation rules, and behavior on re-login on the same device.
  2. Data exchange scheme — we record what data comes from the external side, what we store ourselves, how the authenticity of the response is verified, and how long the session lives.
  3. Failure design — we work through access revocation, no response, account owner change, and login after an app update.
  4. In-app setup — we embed login into registration and account screens and synchronize it with already working methods.
  5. Device testing — we run the scenario on real devices of different generations: slow network, parallel login from phone and tablet, switching between accounts.
  6. Observability — we measure the share of successful logins and drop-offs by reason so that degradation is visible earlier than user requests.
  7. Handover to support — we hand over the scheme, first-line instructions, diagnostic order, and key rotation procedure.

After handover, the support team itself distinguishes a platform-side failure from an app error — without calling developers for every case.

Set of settings and documentation after implementation

We assemble the set so that login via Odnoklassniki can be operated and developed without us: we export settings from the app dashboard rather than "keeping them in our heads," and we record agreements on secrets and permissions in writing. Below is what physically remains with your team after delivery.

  • Login configuration. App identifiers, allowed redirect addresses, set of requested permissions, session lifetime, and access renewal rules — with a note on exactly where each parameter is changed and what it affects.
  • Data flow scheme. One sheet: from pressing the button to the profile appearing in the app, including confirmation code exchange, server-side call, and the list of data that we do not request or store.
  • Access rules. Who can see app secrets, who can change settings, how an engineer's account is created and closed, and at what interval keys are rotated.
  • Support instructions. Breakdown of typical requests: expired key, user revoked consent in the social network, social network side unavailable. For each case — what to check first and what to answer the user.
  • Access revocation procedure. How to disable login entirely, how to revoke issued permissions from users, what happens to open sessions, and how to restore the previous configuration.
  • Pre-release checklist. A set of test accounts, successful login and cancellation scenarios, checks on different OS versions and on a device without the social network app installed.

All of this is handed over as exported settings, schemes, and text regulations in your repository or knowledge base. We update it when the social network's rules change — according to the agreed support regulation.

Case: how we restored failure-free login for users

What was

In the client's app, login via Odnoklassniki completed successfully for only 71% of users: every third person reached the "failed to log in" screen.

The cause was not the interface — the external service periodically responded with a refusal to the confirmation exchange, and the app treated any refusal as final and offered to start over.

In a week this produced about 2,400 repeated attempts: people pressed the login button 3-5 times, some left to register by email. Time to the first screen after confirmation stretched to 6-9 seconds — during that time the user managed to close the app.

What became

We separated login states: external service refusal, network interruption, and user cancellation are handled differently.

During a short-term failure, the request is repeated automatically with increasing delay, and an already received response is saved and reused on the next press — there are no more duplicate requests to the service.

The share of successful logins grew from 71% to 98.6%. Time to the first screen after confirmation decreased from 6-9 seconds to 1.3-1.5. The number of repeated attempts per week fell from 2,400 to 190 — an external-side failure stopped being the user's problem.

Separately, we set up monitoring of the drop-off share: if it rises above the threshold, we learn about it earlier than support requests start pouring in.

How does social login differ from login by number?

Login by number confirms possession of a specific channel: the code arrives on the device the person is using now, and this number remains the key to the account.

Login via Odnoklassniki works differently — the social network has already verified the person, and gives the app an identifier and basic profile, without its own password and without a code.

Hence the main difference — whose side identity confirmation is on. With login by number, verification is performed by us together with the mobile operator; with social login, it is fully delegated to the external service.

If it is unavailable, has limited data issuance, or has changed the rules for working with apps, new logins stop, even though our code has not changed — and we cannot influence this directly.

Changing devices behaves differently. With a number, it is enough to enter the code on the new phone — access is transferred in a minute and does not require remembering a password.

With a social network, the person must remember their account details and pass its protection, and if the app is deleted and the password is forgotten, recovery goes to the social network side.

Access recovery also differs in the amount of support. By number, we see the link, can initiate code reissuance, and handle the request ourselves.

If a social network account is lost, we have no levers: the account in the app becomes unreachable, and "I can't log in" requests go to the external side.

In practice, we more often make social login a fast additional path, and leave the number or email linked to the profile as the main recovery key. Then changing devices and losing external access do not turn into account loss.

Frequent technical questions about connecting login

Once login via Odnoklassniki is already working and the app lives in stores, questions shift from "how to configure" to "how does this behave in operation." Four scenarios come up most often: updating a published build, app store re-review, access revocation, and device change.

There is no need to rewrite the authorization layer from scratch. It is enough to record where the session is stored and how the app reacts to a platform refusal — then the login funnel remains predictable.

What changes when an already published app is updated?

Login itself does not need to be registered again: the app identifier on the platform side does not change, only the build is updated. App store re-review proceeds as a normal release — we run the test build before publication to catch permission discrepancies.

What should be done if the user does not have the social network client installed?

Login by username and password in the platform window works even without the installed client — the user returns to the app via a link. We also check closing the window halfway: the app must not hang in loading.

What happens when access is revoked?

The user has the right to revoke access in the social network settings. On the next request to the profile, a refusal arrives — this is a standard scenario: we show the re-login screen and save the local account data.

How does login behave when changing devices?

The session is tied to the device, so on a new phone login is performed again. We check three states — clean login, login after reinstallation, and login with a saved profile — so that duplicate accounts do not appear.

Let's discuss the task: login to the app for your scenario

Estimation of work on login via Odnoklassniki depends not on the button itself, but on what happens around it. To return a figure and a plan rather than a broad range, we need the login scenario as a whole — including your profile processing side.

  • platform and build method: native project or cross-platform layer, on which current branch the app is built;
  • current login methods and how the new one coexists with them on one screen;
  • what you do after receiving the profile: linking to an internal identifier, issuing a session, screens dependent on data;
  • exchange with the server side: a separate service or a call directly from the client;
  • account states: re-login, refusal, access revocation, profile mismatch;
  • constraints: security requirements, regions, app store rules, target release dates.

This is enough to break the work into stages and give connection timelines without a "just in case" buffer. In response we send not "we'll do it," but a working set:

  • breakdown of the login scenario with branches and a solution option for each;
  • list of questions that need to be closed before start, with a note on who is responsible;
  • implementation plan by stages with dependencies and checkpoints;
  • connection timelines and a list of what affects them;
  • estimation of work by stages with an indication of the assumptions on which it is based.

If some data is not yet known, write as it is: we separate gaps in source data so that they do not turn into hidden risk at the launch stage. Describe the task — we will return with an estimate and a plan.