socialiteproviders/odnoklassniki
Odnoklassniki (OK.ru) OAuth2 provider for Laravel Socialite. Adds a ready-made driver so you can authenticate users via Odnoklassniki with one line: Socialite::driver('odnoklassniki')->redirect(). Install with Composer, set your client ID and secret, and receive standard Socialite user objects.
Architecture fit. This is a thin Socialite driver, not a framework or subsystem. Its entire surface is an OAuth 2.0 endpoint configuration plus a getUserByToken mapping into Socialite's User contract, registered through the SocialiteWasCalled event. That means it fits any Laravel codebase that already uses Socialite for another provider with no new architectural boundary: same controller shape, same callback route, same Socialite::driver('odnoklassniki') call site. It stores nothing, publishes nothing, and requires no migrations. The only schema implication is on our side — a new provider/provider_id (or equivalent) column and a linking policy for existing accounts. From a TPM standpoint the architectural cost is near zero and the decision is therefore market-driven, not engineering-driven.
Integration feasibility. High feasibility, low effort. Composer install, one listener registration, credentials in config/services.php, a redirect and a callback route, and a smoke test against a real OK.ru account. A competent Laravel engineer reaches a working login in a one-day spike. The feasibility gate is entirely in dependency constraints, not code: the split package must agree with our laravel/socialite major, the socialiteproviders/manager major, and our Laravel/PHP version. Those are three lines in composer.json and should be read before any estimate is given.
Technical risk. Three risks matter and none are exotic.
socialiteproviders/providers monorepo; this package is a subtree split with 0 dependents. Its effective maintenance is the monorepo's maintenance, and its version must track the monorepo and the manager package in lockstep. A per-package health read ("0 dependents") is misleading in both directions — it does not mean abandoned, and it does not mean battle-tested.Key questions.
laravel/socialite, illuminate/*, PHP, and socialiteproviders/manager versions does this package's composer.json actually permit — and does that intersect our current stack?Stack fit. A standard Laravel app on a currently supported PHP and a supported Socialite major. The driver is registered through SocialiteWasCalled in our service provider (or EventServiceProvider on older Laravel), so it composes with whatever Socialite providers we already run — Google, Apple, VK, etc. — without touching their wiring. Multi-provider coexistence is the normal case and is well-trodden: one config block per provider, one route pair per provider, one shared callback controller if we parameterize by driver.
Migration path. There is no incumbent to migrate from; this is greenfield. The right path is: (1) confirm the provider is not already implicitly available via the manager package, (2) composer require socialiteproviders/odnoklassniki on a branch and inspect the lockfile diff — that diff is the actual change under review, (3) add config and routes behind a feature flag so the login button is dark until legal and marketing sign off, (4) enable for internal users, then a small percentage, then GA. The feature flag is not ceremony: it lets the auth path revert in one config change if OK.ru changes behaviour the day after launch.
Compatibility. Verify in this order — PHP version in CI and production, Laravel major, Socialite major, socialiteproviders/manager major, ext-curl/ext-json, then the callback URL registration in the OK.ru developer console (exact scheme, host, and path; a trailing slash mismatch is the most common first-day failure). Confirm the driver works in the same Socialite version as our other drivers, since a mixed-major install is not possible.
Sequencing. Week 1: constraint audit and spike (one engineer, one to two days) plus a real-account end-to-end test. Week 2: product decision on identity linking and email fallback, plus legal review if Russian users are in scope. Week 3: build the UI (button, copy in the right locale, error states), instrument signup funnel events per provider. Week 4: staged rollout. Budget the calendar around legal and localization, not code — the code is the short pole.
Maintenance. Low ongoing code maintenance, non-trivial dependency maintenance. A pinned patch version plus a quarterly check of the monorepo's releases is sufficient for steady state; the driver has no configuration we will tune. The real maintenance liability is the external provider contract. Assign a named owner in the dependency inventory — "auth provider integrations" — and add an alert on failed OAuth callbacks so upstream breakage surfaces as an incident, not as a slow signup-rate decline nobody attributes correctly.
Support. Support load comes from users, not from the package: failed logins, accounts created with a different provider, and "I signed up with OK.ru and can't get in" tickets. Prepare support macros and an account-linking self-service path before launch. For the package itself, GitHub Issues on the monorepo is the only channel; there is no paid tier, so our fallback is to vendor the driver or write a local one — worth costing once (it is roughly a single class) so the exit is a known quantity rather than a panic.
Scaling. Runtime cost is two outbound HTTPS calls per login (authorize redirect, token+profile exchange) on a path that only fires at signup and login. Throughput is bounded by human login rate, not by our traffic, so there is no meaningful scaling concern. Two practical notes: apply explicit timeouts and a circuit breaker around the token exchange so a slow OK.ru cannot pin PHP-FPM workers, and confirm the OK.ru application's rate limits before a large marketing push, since a launch spike is the one scenario that will hit them.
Failure modes (ranked by expected cost).
Ramp-up. One to two days for anyone who has already integrated a Socialite provider; half a day for someone who has not, since the pattern is identical across drivers. The binding constraints are credentials access (OK.ru developer app creation may require a local entity or phone verification), legal review, and locale-appropriate copy — none of which are engineering time, all of which sit on the critical path. Frame the investment to stakeholders as market entry with a small engineering tail, not as an infrastructure upgrade, and judge it on incremental registrations and activation from OK.ru geographies rather than on package metrics.
How can I help you explore Laravel packages today?