Реалізація авторизації через VK ID на сайті

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.
Розробка та обслуговування будь-яких видів сайтів:
Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

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

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Реалізація авторизації через VK ID на сайті
Проста
від 1 робочого дня до 3 робочих днів
Часті питання
Наші компетенції:
Етапи розробки
Останні роботи
  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Впровадження VK ID аутентифікації для веб-сайтів

VK ID — унифікована система авторизації ВКонтакте, яка прийшла на заміну старому VK Connect. Актуальна для російськомовної аудиторії: VK залишається найбільшою соціальною мережею у Росії та СНГ. Підтримує OAuth2 та новий VK ID SDK з покращеним UX.

Створення додатка

  1. vk.com/dev → Мої додаткиСтворити додаток
  2. Тип: Веб-сайт
  3. Указати адресу сайту й базовий домен
  4. Зберегти ID додатка і Защищённий ключ
  5. У налаштуваннях → Авторизація додати дозволені redirect URI

Laravel Socialite

composer require laravel/socialite socialiteproviders/vkontakte
// config/services.php
'vkontakte' => [
    'client_id'     => env('VK_CLIENT_ID'),
    'client_secret' => env('VK_CLIENT_SECRET'),
    'redirect'      => env('VK_REDIRECT_URI'),
],

class VkAuthController extends Controller
{
    public function redirect(): RedirectResponse
    {
        return Socialite::driver('vkontakte')->scopes(['email'])->redirect();
    }

    public function callback(): RedirectResponse
    {
        try {
            $vkUser = Socialite::driver('vkontakte')->user();
        } catch (\Exception $e) {
            return redirect('/login')->withErrors(['vk' => 'Помилка авторизації VK']);
        }

        $user = User::updateOrCreate(
            ['vk_id' => $vkUser->getId()],
            [
                'name'   => $vkUser->getName(),
                'email'  => $vkUser->getEmail() ?: null,
                'avatar' => $vkUser->getAvatar(),
            ]
        );

        Auth::login($user, remember: true);
        return redirect()->intended('/dashboard');
    }
}

Особливості VK OAuth

Email доступний тільки з явним scope. Навіть з запитаним scope email VK передає його не через стандартний OAuth, а у параметрах callback-запиту. Socialite-провайдер обробляє це автоматично.

VK ID SDK (новий спосіб)

ВКонтакте випустив офіційний VK ID SDK для JavaScript з підтримкою One Tap:

<script src="https://unpkg.com/@vkid/sdk@latest/dist-cdn/index.js"></script>
<div id="vkid-container"></div>

Терміни

OAuth2-флоу через Socialite — 1–1.5 дня. З VK ID SDK та обробкою відсутнього email — 2–3 дні.